[LBBS-128] thread.c: Recursive lock attempt between find_thread and thread_unregister
Not currently sure how this is possible, and this is the first time I've seen it:
[2026-01-26 23:59:19.760] DEBUG[2832531]: mod_mail.c:236 mailbox_dispatch_event: Dispatching mailbox event 'Logout' (maildir: )
[2026-01-26 23:59:19.760] DEBUG[2832531]: node.c:2347 bbs_node_exit: Node 51 has ended its IMAPS session
[2026-01-26 23:59:19.760] DEBUG[2832531]: node.c:641 node_shutdown: Beginning shut down of node 51
[2026-01-26 23:59:19.760] DEBUG[2832531]: event.c:143 bbs_event_broadcast: Event NODE_SHUTDOWN dispatched and not consumed
[2026-01-26 23:59:19.760] DEBUG[2832531]: event.c:143 bbs_event_broadcast: Event USER_LOGOFF dispatched and not consumed
[2026-01-26 23:59:19.760] DEBUG[2832531]: io.c:608 bbs_io_teardown_all_transformers: Removing I/O transformer at index 0
[2026-01-26 23:59:19.761] DEBUG[2832531]: thread.c:364 __bbs_pthread_join: Attempting to join thread 139898392590016 (LWP 2832532) at io.c:592 teardown_transformation()
[2026-01-26 23:59:19.761] ERROR[2832531]: thread.c:125 __thread_unregister: Recursive attempt to wrlock &thread_list, definite deadlock! (rwlock acquired at thread.c:319 0 s ago by LWP 2832531)
[2026-01-26 23:59:19.761] ERROR[2832531]: lock.c:477 __bbs_rwlock_wrlock: Failed assertion 0
[2026-01-26 23:59:19.787] ERROR[2832531]: backtrace.c:255 bbs_log_backtrace: Got 15 backtrace records
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 0: lbbs bbs_log_backtrace()
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 1: lbbs __bbs_assert_fatal()
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 2: lbbs __bbs_rwlock_wrlock()
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 3: lbbs <unknown>()
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 4: lbbs __bbs_pthread_join()
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 5: lbbs <unknown>()
[2026-01-26 23:59:20.219] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 6: lbbs bbs_io_teardown_all_transformers()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 7: lbbs bbs_io_shutdown()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 8: lbbs <unknown>()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 9: lbbs bbs_node_unlink()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 10: lbbs bbs_node_exit()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 11: [0x7f3cb1ebe387] net_imap.so net_imap.c:5117 __imap_handler()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 12: lbbs <unknown>()
[2026-01-26 23:59:20.220] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 13: [0x7f3cd63351f5] libc.so.6 pthread_create.c:442 start_thread()
[2026-01-26 23:59:20.221] ERROR[2832531]: backtrace.c:279 bbs_log_backtrace: 14: [0x7f3cd63b58dc] libc.so.6 clone3.S:83 clone3()
BBS server disconnected
#6 __bbs_rwlock_wrlock (t=0x55ed32ba8d90 <thread_list+16>, filename=0x55ed32b98e20 "thread.c", lineno=125, func=0x55ed32b993c0 <__func__.10> "__thread_unregister", name=0x55ed32b98e29 "&thread_list") at lock.c:>
diff = 0
res = 16
c = 1
now = 1769471959
elapsed = 0
start = 1769471959
__func__ = "__bbs_rwlock_wrlock"
#7 0x000055ed32b7dc44 in __thread_unregister (id=139898392590016, file=0x55ed32b8d6da "io.c", line=592, func=0x55ed32b8df30 <__func__.6> "teardown_transformation") at thread.c:125
x = 0x7f3cb1632980
remove = 0
lwp = -1
__func__ = "__thread_unregister"
#8 0x000055ed32b7ec94 in __bbs_pthread_join (thread=139898392590016, retval=0x0, file=0x55ed32b8d6da "io.c", func=0x55ed32b8df30 <__func__.6> "teardown_transformation", line=592) at thread.c:414Comments
You must be logged in to leave a comment.