Hi,
if an nss provider dies during a request the nss responders dies due to
a double free error minutes after the request was sent. The responder
does not handle the unfinished request and so they stay around and the
client has to wait for a response until SSS_CLI_SOCKET_TIMEOUT (5
minutes) is over. During the termination of the request the
sss_dp_callback structure is free two times which lead to an abort in
the nss responder.
The first patch add a handler which removes all open requests after a
reconnect. The second one is only marginally related to the described
issue but makes sure that cmdctx, the parent or grand-parent memory
context of the sss_dp_callback structure, is always allocate with
talloc_zero. The third patch removes the explicit talloc_free of the
sss_dp_callback structures, because they are already freed because
cmdctx was freed during the callback.
bye,
Sumit
Show replies by date