Bug #120887 merge_large_tests-t hanging at Bgc_ticket_manager_test.Several_tickets_test
Submitted: 7 Jul 10:53
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: Tests Severity:S3 (Non-critical)
Version:26.7.0-er OS:MacOS (26.5.2)
Assigned to: CPU Architecture:Any

[7 Jul 10:53] Laurynas Biveinis
Description:
Picking S3 instead of S7 because this hang has no natural timeout in the harness, thus blocks the run forever.

$ ./runtime_output_directory/merge_large_tests-t

spins forever / hangs with the stacktraces:

  * thread #1, queue = 'com.apple.main-thread'   [ main — joining workers ]
      frame #0: libsystem_kernel.dylib`__ulock_wait + 8
      frame #1: libsystem_pthread.dylib`_pthread_join + 616
      frame #2: libc++.1.dylib`std::__1::thread::join() + 36
      frame #3: merge_large_tests-t`binlog::unittests::Bgc_ticket_manager_test_Several_tickets_test_Test::TestBody() at bgc_ticket_manager-t.cc:143:18
      frame #4: gtest.cc:2664 HandleSehExceptionsInMethodIfSupported<testing::Test, void>
      frame #6: testing::Test::Run() at gtest.cc:2739
      frame #14: merge_large_tests-t`main at gunit_test_main_server.cc:67:13
      frame #15: dyld`start + 6992

    thread #2   [ representative of 241 threads — consumer blocked on condvar ]
      frame #0: libsystem_kernel.dylib`__psynch_cvwait + 8
      frame #1: libsystem_pthread.dylib`_pthread_cond_wait + 980
      frame #2: libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 32
      frame #3: merge_large_tests-t`...Several_tickets_test...::$_0::operator()(n_thread) const at bgc_ticket_manager-t.cc:103:29
      frame #6: thread.h:168 __thread_proxy
      frame #7: libsystem_pthread.dylib`_pthread_start + 136

    thread #4   [ representative of 29 threads — producer spinning for front ticket ]
      frame #0: libsystem_kernel.dylib`swtch_pri + 8
      frame #1: libsystem_pthread.dylib`cthread_yield + 36
      frame #4: merge_large_tests-t`...Several_tickets_test...::$_0::operator()(n_thread) const at bgc_ticket_manager-t.cc:119:17
      frame #6: thread.h:168 __thread_proxy
      frame #7: libsystem_pthread.dylib`_pthread_start + 136

    thread #3   [ the single thread at line 130 — producer spinning on pop_front_ticket() ]
      frame #0: libsystem_kernel.dylib`swtch_pri + 8
      frame #1: libsystem_pthread.dylib`cthread_yield + 36
      frame #4: merge_large_tests-t`...Several_tickets_test...::$_0::operator()(n_thread) const at bgc_ticket_manager-t.cc:130:17
      frame #6: thread.h:168 __thread_proxy
      frame #7: libsystem_pthread.dylib`_pthread_start + 136

How to repeat:
See above. I used release build