yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #55427
[Bug 1614561] Re: db.bw_usage_update can update multiple db records
Reviewed: https://review.openstack.org/250807
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=51575f872218df16c4e43f242f1db3eab792a332
Submitter: Jenkins
Branch: master
commit 51575f872218df16c4e43f242f1db3eab792a332
Author: Pavel Kholkin <pkholkin@xxxxxxxxxxxx>
Date: Fri Nov 27 16:19:46 2015 +0300
removed db_exc.DBDuplicateEntry in bw_usage_update
BandwidthUsage model has no UniqueConstraints.
In 'bw_usage_cache' table in nova db there is single primary
autoincrement key. So the duplicate entry problem is solved by
db itself and db_exc.DBDuplicateEntry could not be raised in Nova.
Ideally we should add UniqueConstraint to prevent multiple bw usage
records existing for the same date range and UUID. That fix for this
will mean we should be able to remove the .first() call and instead
use .one(). The current code that uses .first() is not correct
because there is no order_by() applied on the SQL query and
therefore the returned "first record" is indeterminate.
This workaround fix removed misleading note and exception and
added order_by() to ensure that the same record is updated every time.
Co-Authored-By: Sergey Nikitin <snikitin@xxxxxxxxxxxx>
Closes-bug: #1614561
Change-Id: I408bc3a3e5623965a619d8c7241e4e77c8bf44f5
** Changed in: nova
Status: In Progress => Fix Released
--
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/1614561
Title:
db.bw_usage_update can update multiple db records
Status in OpenStack Compute (nova):
Fix Released
Bug description:
The current code in db.bw_usage_update() function uses .first() and is
not correct because there is no order_by() applied on the SQL query
and therefore the returned "first record" is indeterminate. We should
remove misleading note about possible race and exception and added
order_by() to ensure that the same record is updated every time.
Ideally we should add UniqueConstraint for BandwidthUsage model to
prevent multiple bw usage records existing for the same date range and
UUID. That fix for this will mean we should be able to remove the
.first() call and instead use .one().
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1614561/+subscriptions
References