yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #87895
[Bug 1954662] [NEW] Quota driver "DbQuotaNoLockDriver" can lock when removing the expired reservations
Public bug reported:
Just in case, this is related to [1].
In [1] we found that we were deleting the reservations always for a
specific resource and project, regardless of the date. The solution was
to introduce a timeout (with reasonable value of 20 seconds) to filter
the existing reservations. Any recent reservation, created by an ongoing
request transaction, is keep in the DB.
This bug shows another problem related to situations with very high
concurrency. The deletion of the expired reservations cannot be executed
at the same time by two or more concurrent transactions. In case this
happens, only one transaction will succeed and the others will fail,
triggering the DB retry and ending in a DB lock state.
[1]https://bugs.launchpad.net/neutron/+bug/1940311
[2]https://github.com/openstack/neutron/blob/e99d9a9d0697a21ba7ec84465f415f60041f3767/neutron/db/quota/driver_nolock.py#L53-L58
** Affects: neutron
Importance: High
Assignee: Rodolfo Alonso (rodolfo-alonso-hernandez)
Status: New
** Changed in: neutron
Assignee: (unassigned) => Rodolfo Alonso (rodolfo-alonso-hernandez)
** Changed in: neutron
Importance: Undecided => High
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1954662
Title:
Quota driver "DbQuotaNoLockDriver" can lock when removing the expired
reservations
Status in neutron:
New
Bug description:
Just in case, this is related to [1].
In [1] we found that we were deleting the reservations always for a
specific resource and project, regardless of the date. The solution
was to introduce a timeout (with reasonable value of 20 seconds) to
filter the existing reservations. Any recent reservation, created by
an ongoing request transaction, is keep in the DB.
This bug shows another problem related to situations with very high
concurrency. The deletion of the expired reservations cannot be
executed at the same time by two or more concurrent transactions. In
case this happens, only one transaction will succeed and the others
will fail, triggering the DB retry and ending in a DB lock state.
[1]https://bugs.launchpad.net/neutron/+bug/1940311
[2]https://github.com/openstack/neutron/blob/e99d9a9d0697a21ba7ec84465f415f60041f3767/neutron/db/quota/driver_nolock.py#L53-L58
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1954662/+subscriptions
Follow ups