Bug 1672584
Summary: | [abrt] [faf] sssd: __pthread_rwlock_wrlock(): /usr/libexec/sssd/sssd_be killed by 11 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Steeve Goveas <sgoveas> |
Component: | sssd | Assignee: | Tomas Halman <thalman> |
Status: | CLOSED ERRATA | QA Contact: | sssd-qe <sssd-qe> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 8.0 | CC: | atikhono, dbula, grajaiya, jhrozek, lslebodn, mupadhye, mzidek, pbrezina, sbose, tscherf, wchadwic |
Target Milestone: | rc | ||
Target Release: | 8.2 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
URL: | http://faf.lab.eng.brq.redhat.com/faf/reports/bthash/8fa878897513ed0df8703f60876adc2c64eef26b/ | ||
Whiteboard: | sync-to-jira | ||
Fixed In Version: | sssd-2.2.3-2.el8 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-04-28 16:55:59 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1682305 | ||
Bug Blocks: |
Description
Steeve Goveas
2019-02-05 11:32:44 UTC
So, backtrace boils down to following: sssd::util/server.c:orderly_shutdown() -> libc::exit() -> libc::on_exit() -> ... -> libtalloc::talloc_lib_atexit() -> [a bunch of libtalloc::_tc_free_*() leading to] -> sssd::providers/ldap/sdap_async.c:sdap_handle_destructor() [d-tor of "sdap_handle"] -> (inlined)sdap_handle_release() -> (inlined)libldap::ldap_unbind_ext() ->ldap_ld_free() -> ... libcrypto::RAND_get_rand_method()(*) -> CRYPTO_THREAD_write_lock() RAND_get_rand_method() calls CRYPTO_THREAD_write_lock(rand_meth_lock) with "rand_meth_lock" being "static CRYPTO_RWLOCK *rand_meth_lock;" [ https://github.com/openssl/openssl/blob/master/crypto/rand/rand_lib.c ] Take a note, this is libc::on_exit() path. Now, https://github.com/openssl/openssl/blob/master/crypto/init.c#L140 : atexit(OPENSSL_cleanup) OPENSSL_cleanup() -> rand_cleanup_int() -> CRYPTO_THREAD_lock_free(rand_meth_lock); [ https://github.com/openssl/openssl/blob/master/crypto/rand/rand_lib.c#L357 ] So, I am not sure on order of execution of "on_exit" handlers, but it seems it might be so that OpenSSL handler is executed first and mutex is already freed when sssd's "on_exit" handlers tries to lock it... Thank you very much for the analysis, Alexey. Given that this is "just" a crash on exit, I don't think it is worth a blocker flag for 8.0 and can wait for either 8.0.z if we will do a z-stream update for another reason or even 8.1 potential place to look at: Sumit found that there is sdap_finalize that calls orderly_shutdown, perhaps we could unbind there? Master: - f19f8e6b917e77d5d2bfdedc78e5669b522ea265 (In reply to Sumit Bose from comment #19) > Master: > - f19f8e6b917e77d5d2bfdedc78e5669b522ea265 sorry, this commit had issues Master: - a9669683de3a1c39dc4e47dd2aca0a9f99b652a9 *** Bug 1771852 has been marked as a duplicate of this bug. *** Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:1863 |