Public bug reported:

During an upgrade, you'll already have a entry in the nova.services
table for 'nova-osapi_compute'.

The new wsgi app has NAME='osapi_compute' and first queries for this name, 
which yields 0 rows.
Then since there's no entry it decides to create a new entry with INSERT where 
it appends 'nova-' to this 'name'. Problem is there's already an entry for 
'nova-osapi_compute', so now the insert fails because of duplicate entries.

So NAME has to be changed, or append 'nova-' on both queries.


Also the queries

SELECT
if exists UPDATE
if not exists INSERT

Could really just boil down to

UPDATE
if fail INSERT

This way it's atomic aswell.

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1715463

Title:
  binary name gets confused under upgrades of osapi_compute and metadata

Status in OpenStack Compute (nova):
  New

Bug description:
  During an upgrade, you'll already have a entry in the nova.services
  table for 'nova-osapi_compute'.

  The new wsgi app has NAME='osapi_compute' and first queries for this name, 
which yields 0 rows.
  Then since there's no entry it decides to create a new entry with INSERT 
where it appends 'nova-' to this 'name'. Problem is there's already an entry 
for 'nova-osapi_compute', so now the insert fails because of duplicate entries.

  So NAME has to be changed, or append 'nova-' on both queries.

  
  Also the queries

  SELECT
  if exists UPDATE
  if not exists INSERT

  Could really just boil down to

  UPDATE
  if fail INSERT

  This way it's atomic aswell.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1715463/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to