We used the dashboard to boot up a cluster of 50 VMs, all identical and small images. We recently installed quantum 2012-1, and upgraded this week to 2012-2. Both versions are affected.
As seen from the logs, the error is in File "/usr/lib/python2.7/dist-packages/quantum/db/db_base_plugin_v2.py", line 1216, in create_port.
This function is probably called simultaneously for two different ports.
In postgresql, two simultaneous selects on the table ipavailabilityranges will give the same results for a free ip adres, even when protected by a transaction. A better, but non-portable way would be "select for update".
However, to make it portable this part should run as a single thread and might probably better be protected by a semaphore or a similar construct.
If any additional info or testing is needed, don hesitate to ask. To get this working is really important to us.
We used the dashboard to boot up a cluster of 50 VMs, all identical and small images. We recently installed quantum 2012-1, and upgraded this week to 2012-2. Both versions are affected.
As seen from the logs, the error is in File "/usr/lib/ python2. 7/dist- packages/ quantum/ db/db_base_ plugin_ v2.py", line 1216, in create_port. anges will give the same results for a free ip adres, even when protected by a transaction. A better, but non-portable way would be "select for update".
This function is probably called simultaneously for two different ports.
In postgresql, two simultaneous selects on the table ipavailabilityr
However, to make it portable this part should run as a single thread and might probably better be protected by a semaphore or a similar construct.
If any additional info or testing is needed, don hesitate to ask. To get this working is really important to us.