paveljanik
commented at 9:10 AM on May 6, 2016:
contributor
This fixes the deadlock in the CScheduler when there are other serviceQueues waiting for the new task to be added to the taskQueue, but schedule notifies only one of them who processes it and ends. And the other ones get stucked waiting for the new task which doesn't come in at all.
MarcoFalke
commented at 9:45 AM on May 6, 2016:
member
Tested ACK
28655b8:
$ for i in {1..10000}; do timeout 1 src/test/test_bitcoin --run_test=scheduler_tests &> /dev/null ;echo $? >> /tmp/res ;done;cat /tmp/res|sort|uniq -c
9630 0
370 124
70af981:
$ rm /tmp/res; for i in {1..10000}; do timeout 1 src/test/test_bitcoin --run_test=scheduler_tests &> /dev/null ;echo $? >> /tmp/res ;done;cat /tmp/res|sort|uniq -c
10000 0
Travis issue unrelated.
laanwj
commented at 1:34 PM on May 6, 2016:
member
Thanks for fixing this!
laanwj
commented at 4:16 PM on May 6, 2016:
member
For some reason Travis is failing on this due to python zmq problems. I don't understand why, as there is no Python (or zmq) related change here. Will try to clear Travis' caches.
paveljanik
commented at 6:42 PM on May 6, 2016:
contributor
This is because my branch is based on the pre-python3 merge. Master is python3, thus there is no zmq module for python2...
Reenable multithread scheduler test.db18ab28c7
Notify other serviceQueue thread we are finished to prevent deadlocks.166e4b0dfa
paveljanik force-pushed on May 6, 2016
paveljanik
commented at 6:45 PM on May 6, 2016:
contributor
Rebased should solve this, I think. Maybe travis kick can help now.
paveljanik
commented at 9:19 PM on May 6, 2016:
contributor
This helped. Hmm, shouldn't we temporary add python-zmq back to travis to workaround this?
Or should we modify the test script that requires python's zmq module to dot no anything when there is no such module installed (this could also simplify the tests setup for everyone!)? @MarcoFalke what do you think?
MarcoFalke
commented at 10:16 AM on May 7, 2016:
member
@paveljanik python-zmq is already present in .travis.yml, you can't add it more than once ;)
I changed it (#7851) to fail instead, so errors are detected (and not silently ignored). The travis failure was an error due to broken cache. I think @laanwj cleared the cache and the travis issue is now fixed.
MarcoFalke
commented at 10:16 AM on May 7, 2016:
member
ut re-ACK166e4b0
paveljanik
commented at 3:54 PM on May 7, 2016:
contributor
@MarcoFalke there is python3-zmq, not python-zmq...
theuni
commented at 5:39 PM on May 7, 2016:
member
Does it need to signal in the catch/rethrow case as well?
paveljanik
commented at 7:47 AM on May 8, 2016:
contributor
@theuni I think rethrow case is there only for f throwing some exception. It is not a case for our multithread test. But in general, yes, I think there could be the same problem for exception throwing f.
laanwj
commented at 9:09 AM on May 10, 2016:
member
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-04-13 21:15 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me