[SERVER-8707] dbclient_rs_test threading issue Created: 25/Feb/13 Updated: 11/Jul/16 Resolved: 20/Aug/13 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Concurrency, Internal Client |
| Affects Version/s: | 2.4.6 |
| Fix Version/s: | 2.5.2 |
| Type: | Bug | Priority: | Critical - P2 |
| Reporter: | Eric Milkie | Assignee: | Randolph Tan |
| Resolution: | Done | Votes: | 0 |
| Labels: | buildbot | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Description |
|
When I run the test with Valgrind, after a couple of runs it flags an issue at exit handler time when we try to destruct a global mongo::mutex (which has a boost::timed_mutex member). |
| Comments |
| Comment by Erich Siedler [ 21/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Randolph, I think the patch "Allow BackgroundJob to be restartable" have a race condition. I've submitted this same feature a year ago in In my pull request you will find 2 test cases that clearly explain my point. They both fail with your patch. Best regards. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by auto [ 20/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}Message: Thoroughly cleanup all replica set connection related artifacts after every test. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by auto [ 20/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}Message: Allow BackgroundJob to be restartable. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 06/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
V2.4 Linux 64-bit Subscription RHEL 6.2 Build #167 (Tue Aug 6) test output ends with:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tad Marshall [ 06/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I ran the test in a loop in the debugger in Windows, testing a debug build. Here's the crash info:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tad Marshall [ 06/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Builder Linux RHEL 64-bit Build #1468 – 85e79d7ad2db6fa0607957cac536d20a3738f6a5
Same diagnosis as above. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tad Marshall [ 06/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
buildbot failure in 10gen Special MongoDB on V2.4 Linux 64-bit Subscription RHEL 6.2
The test stops here ... probably a segfault or similar issue. We need to finish | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by auto [ 04/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: This restores the startup timing that was changed by commit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 04/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Again on v2.4, so it doesn't have Tad's latest commit. V2.4 Linux 64-bit Subscription Ubuntu 1204 Build #152 Aug 4 rev ea62502ee http://buildbot-special.10gen.com/builders/V2.4%20Linux%2064-bit%20Subscription%20Ubuntu%201204/builds/152/steps/test/logs/stdio
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by auto [ 04/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: This restores the startup timing that was changed by commit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 03/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
More: buildbot-special V2.4 Linux 64-bit SSL Ubuntu 1204 Build #128 rev 268d3f665 buildbot-special V2.4 Linux 64-bit Subscription Amazon AMI Build #153 rev ea62502e
V2.4 Linux 64-bit Subscription RHEL 6.2 Build #163 rev ea62502ee
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 02/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ugh, another failure. OS X 10.5 64-bit Build #5629 August 2 rev 07faf6e http://buildbot.mongodb.org/builders/OS%20X%2010.5%2064-bit/builds/5629/steps/test_2/logs/stdio Last lines in the test output are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by auto [ 02/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: Use StaticObserver to end ReplicaSetMonitorWatcher's loop when a program | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by auto [ 02/Aug/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Author: {u'username': u'tadmarshall', u'name': u'Tad Marshall', u'email': u'tad@10gen.com'}Message: Use StaticObserver to end ReplicaSetMonitorWatcher's loop when a program | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tad Marshall [ 31/Jul/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Failed on Linux RHEL 64-bit Build #1437 – 5246d29:
The log ends at this point. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Tad Marshall [ 26/Jul/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Failure in same test; is this a different issue?
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 25/Jul/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
tad - fyi, here is another C++ driver shutdown issue | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 14/Jul/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Failed in Nightly Linux 64-bit Subscription RHEL 5.7 Build #486 Sun July 14 http://buildbot-special.10gen.com/builders/Nightly%20Linux%2064-bit%20Subscription%20RHEL%205.7/builds/486/steps/test_2/logs/stdio
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Matt Kangas [ 12/Jul/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ditto: V2.4 Linux 64-bit Subscription RHEL 5.7 Build #137 http://buildbot-special.10gen.com/builders/V2.4%20Linux%2064-bit%20Subscription%20RHEL%205.7/builds/137/steps/test/logs/stdio Last lines in buildlog are
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eric Milkie [ 25/Feb/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I don't see an easy way to solve this – we can add more checks for !inShutdown() but that won't solve the threading problem. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Eric Milkie [ 25/Feb/13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Looks like RS Monitor Watcher thread was doing things (and using globals) during global destructor time. |