[LBBS-155] lock.c: False positive recursive deadlock assertions
We've had issues with this in the past, and I thought they'd been resolved in the recent locking revisions, but apparently not:
[2026-04-05 05:38:58.944] ERROR[372187]: mod_oauth.c:340 load_config_file: Recursive attempt to wrlock &clients, definite deadlock! (rwlock acquired at mod_oauth.c:403 0 s ago by LWP 372187)
[2026-04-05 05:38:58.944] ERROR[372187]: lock.c:244 rwlock_deadlock_check: Failed assertion 0
[2026-04-05 05:38:58.950] ERROR[372187]: backtrace.c:255 bbs_log_backtrace: Got 20 backtrace records
[2026-04-05 05:38:59.011] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 0: lbbs bbs_log_backtrace()
[2026-04-05 05:38:59.011] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 1: lbbs __bbs_assert_fatal()
[2026-04-05 05:38:59.011] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 2: lbbs <unknown>()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 3: lbbs __bbs_rwlock_wrlock()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 4: [0x7f25c026a39b] mod_oauth.so mod_oauth.c:341 load_config_file()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 5: [0x7f25c026a93a] mod_oauth.so mod_oauth.c:426 get_oauth_token()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 6: lbbs bbs_get_oauth_token()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 7: [0x7f25c80d5513] mod_mail.so mod_mail.c:1997 imap_client_login()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 8: [0x7f25a8278537] net_imap.so imap_client.c:886 my_imap_client_login()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 9: [0x7f25a82786b1] net_imap.so imap_client.c:918 __imap_client_get_by_url_base()
[2026-04-05 05:38:59.012] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 10: [0x7f25a827942a] net_imap.so imap_client.c:1179 __load_virtual_mailbox()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 11: [0x7f25a8279549] net_imap.so imap_client.c:1202 load_virtual_mailbox_standalone()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 12: [0x7f25a8279630] net_imap.so imap_client.c:1231 imap_proxy_remote_mailbox_exclusively()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 13: [0x7f25a82bb4fb] net_imap.so net_imap.c:4035 finish_auth()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 14: [0x7f25a82bbe36] net_imap.so net_imap.c:4094 handle_auth()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 15: [0x7f25a82be707] net_imap.so net_imap.c:4671 imap_process()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 16: [0x7f25a82ccdfc] net_imap.so net_imap.c:5253 handle_client()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 17: [0x7f25a82cd04b] net_imap.so net_imap.c:5287 imap_handler()
[2026-04-05 05:38:59.013] ERROR[372187]: backtrace.c:279 bbs_log_backtrace: 18: [0x7f25a82cd2dd] net_imap.so net_imap.c:5311 __imap_handler()
[2026-04-05 05:38:59.013]
Thread 1 (Thread 0x7fc4797fa6c0 (LWP 373165)):
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
tid = <optimized out>
ret = 0
pd = <optimized out>
old_mask = {__val = {0}}
ret = <optimized out>
#1 0x00007fc4a4736f4f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 0x00007fc4a46e7fb2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
ret = <optimized out>
#3 0x00007fc4a46d2472 in __GI_abort () at ./stdlib/abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {0 <repeats 15 times>, 140481828723344}}, sa_flags = -1535462779, sa_restorer = 0x0}
#4 0x0000559a75a9251a in __bbs_assert_fatal (condition_str=0x559a75ae938b "0", file=0x559a75ae9318 "lock.c", line=244, function=0x559a75ae9d50 <__func__.4> "rwlock_deadlock_check") at backtrace.c:303
#5 0x0000559a75aa890e in __bbs_assert (function=0x559a75ae9d50 <__func__.4> "rwlock_deadlock_check", line=244, file=0x559a75ae9318 "lock.c", condition_str=0x559a75ae938b "0", condition=0) at ../include/bbs.h:437
__func__ = "rwlock_deadlock_check"
#6 rwlock_deadlock_check (t=0x559a75b043f0 <nodes+16>, filename=0x559a75aed8c4 "node.c", lineno=296, func=0x559a75aef4b0 <__func__.40> "__bbs_node_request", name=0x559a75aed989 "&nodes", c=1, start=0x7fc4797f9bd8, now=1775509594, diff=0, elapsed=0, optype=0x559a75ae9ab9 "wrlock") at lock.c:244
__func__ = "rwlock_deadlock_check"
#7 0x0000559a75aaa91a in __bbs_rwlock_wrlock (t=0x559a75b043f0 <nodes+16>, filename=0x559a75aed8c4 "node.c", lineno=296, func=0x559a75aef4b0 <__func__.40> "__bbs_node_request", name=0x559a75aed989 "&nodes") at lock.c:591
diff = 0
res = 16
c = 1
now = 1775509594
elapsed = 0
start = 1775509594
__func__ = "__bbs_rwlock_wrlock"
#8 0x0000559a75abaa04 in __bbs_node_request (fd=65, protname=0x7fc49266a8bd "IMAPS", sinaddr=0x7fc4797f9d20, sfd=-1, mod=0x7fc48008aea0) at node.c:296Comments
You must be logged in to leave a comment.