-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Server Programmability
-
ALL
-
48
While analyzing tickets SERVER-62402, SERVER-63198 and BF-24143. I can consistently reproduce the scenario where few operations hang at mongo::CappedInsertNotifier::waitUntil by running jstests/replsets/force_shutdown_primary.js and setting an overall shutdown timeout shorter than 30 seconds.
Here's a stacktrace from one of these threads:
(gdb) t 76 [Switching to thread 76 (Thread 0x7f0d29391700 (LWP 29864))] #0 0x00007f0d7c915065 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0 (gdb) bt #0 0x00007f0d7c915065 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0 #1 0x00007f0d7e1d81e5 in __gthread_cond_timedwait (__cond=0x7f0d4a7b1030, __mutex=0x7f0d5279f0b0, __abs_timeout=0x7f0d2938bb20) at /opt/mongodbtoolchain/revisions/97dc5840fc91c99e296fb3406abb87 07f4c2ccc3/stow/gcc-v3.Kbm/lib/gcc/x86_64-mongodb-linux/8.5.0/../../../../include/c++/8.5.0/x86_64-mongodb-linux/bits/gthr-default.h:871 #2 0x00007f0d7e204476 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x7f0d4a7b1030, __lock=..., __atime=...) at /opt/mongodbtoo lchain/revisions/97dc5840fc91c99e296fb3406abb8707f4c2ccc3/stow/gcc-v3.Kbm/lib/gcc/x86_64-mongodb-linux/8.5.0/../../../../include/c++/8.5.0/condition_variable:178 #3 0x00007f0d7e2043c5 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=0x7f0d4a7b1030, __lock=..., __atime=...) at /opt/mongodbtoolchain/ revisions/97dc5840fc91c99e296fb3406abb8707f4c2ccc3/stow/gcc-v3.Kbm/lib/gcc/x86_64-mongodb-linux/8.5.0/../../../../include/c++/8.5.0/condition_variable:106 #4 0x00007f0d7b3d69cc in std::_V2::condition_variable_any::wait_until<std::unique_lock<mongo::latch_detail::Latch>, std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 10 00000000l> > > (this=0x7f0d4a7b1030, __lock=..., __atime=...) at /opt/mongodbtoolchain/revisions/97dc5840fc91c99e296fb3406abb8707f4c2ccc3/stow/gcc-v3.Kbm/lib/gcc/x86_64-mongodb-linux/8.5.0/../.. /../../include/c++/8.5.0/condition_variable:286 #5 0x00007f0d648b28ff in mongo::CappedInsertNotifier::waitUntil (this=0x7f0d4a7b1030, prevVersion=23, deadline=...) at src/mongo/db/catalog/collection.cpp:53