DBDeadlock when create & delete multiple volumes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
New
|
Low
|
Unassigned |
Bug Description
When i create multiple volumes (200 volumes) or delete multiple volumes at the same time, cinder-volume raise DBDeadlock when get quota usages.I am use version openstack train
Step to reproduce:
1. Create 200 instances on Horizon or create volume by following command:
for i in {1..200}; do openstack volume create --size 17 --image <image-id> --type HDD4 vccorp-volume-$i > /dev/null & done
2. Check log cinder-volume, some times it raise DBDeadlock (not all the time)
OR
1. Delete multiple volumes:
for i in $(openstack volume list --project admin --limit 500 | grep "vccorp-volume" | awk -F "|" '{printf $2}'); do openstack volume delete $i; done
How to fix:
I tried add decorator @oslo_db_
I try create & delete volume again but no error deteched.
Can I submit this patch to master branch?
LOG ERROR:
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api [req-bc643b55-
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api Traceback (most recent call last):
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api return f(*args, **kwargs)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api resources=
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api rows = query.order_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api return list(self)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api return self._execute_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api result = conn.execute(
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api return meth(self, multiparams, params)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api return connection.
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api compiled_sql, distilled_params
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api context)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api util.raise_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api reraise(
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api context)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib64/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api cursor.
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api result = self._query(query)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api conn.query(q)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api self._affected_rows = self._read_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api result.read()
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api self._read_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api self._read_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api packet = self.connection
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api packet.
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api err.raise_
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api File "/usr/lib/
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api raise errorclass(errno, errval)
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api DBDeadlock: (pymysql.
2020-10-29 10:54:41.583 3107889 ERROR oslo_db.api
description: | updated |
summary: |
- DBDeadlock when creating multiple volumes + DBDeadlock when create & delete multiple volumes |
description: | updated |
Changed in cinder: | |
status: | New → Incomplete |
Changed in cinder: | |
status: | Incomplete → New |
importance: | Undecided → Low |
"Can I submit this patch to master branch?"
If the existing deadlock patch does not cover enough and you are seeing the need for it to be expanded to cover other calls, then yes, please do propose a patch to add that decorator where needed.
Thanks!