Gate failure : AssertionError: Lists differ: [] != [<Thread(tpool_thread_0, started daemon 14[1123 chars]56)>]
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
In Progress
|
Undecided
|
Rajat Dhasmana |
Bug Description
The gate failure logs are :
ft1.39: cinder.
stderr
stdout
pythonlogging:'': {{{
2019-01-14 07:14:05,488 INFO [keystonemiddle
2019-01-14 07:14:05,492 WARNING [keystonemiddle
2019-01-14 07:14:05,493 WARNING [keystonemiddle
2019-01-14 07:14:05,495 WARNING [keystonemiddle
2019-01-14 07:14:05,515 INFO [cinder.rpc] Automatically selected cinder-scheduler objects version 1.37 as minimum service version.
2019-01-14 07:14:05,518 INFO [cinder.rpc] Automatically selected cinder-scheduler RPC version 3.11 as minimum service version.
2019-01-14 07:14:05,584 INFO [cinder.
2019-01-14 07:14:05,597 INFO [cinder.
2019-01-14 07:14:05,606 INFO [cinder.
2019-01-14 07:14:05,608 INFO [cinder.
2019-01-14 07:14:05,613 INFO [cinder.rpc] Automatically selected cinder-volume objects version 1.37 as minimum service version.
2019-01-14 07:14:05,616 INFO [cinder.rpc] Automatically selected cinder-volume RPC version 3.16 as minimum service version.
2019-01-14 07:14:05,620 WARNING [py.warnings] /home/zuul/
argspec = inspect.
}}}
Traceback (most recent call last):
File "/home/
self.
File "/home/
self.
File "/home/
self.fail(msg)
File "/home/
raise self.failureExc
AssertionError: Lists differ: [] != [<Thread(
Second list contains 20 additional elements.
First extra element 0:
<Thread(
Diff is 1235 characters long. Set self.maxDiff to None to see it.
-------
It occurs at [1] and my understanding of the problem is as follows:
The default tpool._nthreads size is 20 [2].
The default list tpool._threads is empty [2].
The tpool.execute method starts creating threads[3] (no of threads = tpool._nthreads) and adds them to the list(tpool.
As per Gorka's comment[4]
"when you are dealing with a big project that relies on many libraries it may be
harder to control if any of those libraries have already called execute
before you try to set the initial its value."
The reason of the failure seems to be some other test(backup, image, volume) calling the tpool.execute filling up the tpool._threads list in [1].
Since i'm no expert in threads, this is just my observation of the situation, any feedback is appreciated. Thanks!
[1] https:/
[2] https:/
[3] https:/
[4] https:/
Fix proposed to branch: master /review. openstack. org/630648
Review: https:/