Deadlock problems in netlogon_creds_cli_lock in a CTDB environment when a winbindd dies holding the g_lock_lock

Richard Sharpe realrichardsharpe at gmail.com
Thu Nov 11 23:26:17 UTC 2021


Hi folks,

We are seeing an issue at one customer that occurs once around once a
month. winbindd processes start to pile up and they all seems to be
stuck in cli_rpc_pipe_open_schannel_with_creds (there is more to the
stack than that, but they all get there) and they are trying to take
the lock but are stuck.

It looks like the original lock holder has died without calling g_lock_unlock.

Now, this is with 4.7.1 but because I am moving us to 4.15.1 I looked
in that code base and it seems to be similar in that it now calls
netlogon_creds_cli_lck and the lock is released in the destructor.

What is to prevent the lock being held forever if the process dies? Is
there some code elsewhere that detects a process has died holding the
lock and releases it?

I am looking for an interim solution while we get 4.15.2, out it the field?

-- 
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)(传说杜康是酒的发明者)



More information about the samba-technical mailing list