Set up a domain with the following configuration
[domain/LDAP] enumerate = true min_id = 999 max_id = 10000 id_provider = ldap ldap_uri = ldaps://server.example.com ldap_user_search_base = cn=users,cn=Accounts,dc=example,dc=com ldap_group_search_base = cn=groups,cn=Accounts,dc=example,dc=com ;ldap_default_bind_dn = uid=admin,cn=users,cn=accounts,dc=example,dc=com ;ldap_default_authtok_type = password ;ldap_default_authtok = passwordpassword ldap_schema = rfc2307bis use_fully_qualified_names = true store_legacy_passwords = true timeout = 5 ldap_cacertdir = /etc/openldap/cacerts ldap_tlsreq = demand
Disable the remote ldap server (in my case, there was no network route the server)
Run the command {{{ getent -s sss passwd user1@LDAP }}} (or any other user). sssd_nss will crash with a segmentation fault. The backtrace is listed below:
#0 0x0000003fbc8332f5 in *__GI_raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x0000003fbc834b20 in *__GI_abort () at abort.c:88 #2 0x0000003fbcc0183c in talloc_abort (reason=0x703 <Address 0x703 out of bounds>) at talloc.c:151 #3 0x0000003fbcc06a81 in talloc_abort_double_free () at talloc.c:159 #4 talloc_chunk_from_ptr () at talloc.c:174 #5 _talloc_free () at talloc.c:501 #6 talloc_free () at talloc.c:974 #7 0x00000000004308b1 in sss_dp_invoke_callback (ev=0xccd960, te=0xcdd5e0, t={tv_sec = 1254752680, tv_usec = 281805}, ptr=0xcd7320) at ../../server/responder/common/responder_dp.c:107 #8 0x0000003fbe002f25 in tevent_common_loop_timer_delay (ev=0xccd960) at tevent_timed.c:254 #9 0x0000003fbe00455b in std_event_loop_once (ev=0xccd960) at tevent_standard.c:543 #10 0x0000003fbe0047e6 in std_event_loop_wait (ev=0xccd960) at tevent_standard.c:567 #11 0x000000000042c9c1 in server_loop (main_ctx=0xccda80) at ../../server/util/server.c:432 #12 0x0000000000406123 in main (argc=4, argv=0x7fffd2515c28) at ../../server/responder/nss/nsssrv.c:374
Fields changed
tests: 0 => 1
Fixed in 1f22c456d3bcec6f1c9318bd67f69e15e202c9a0
fixedin: => 0.6.1 resolution: => fixed status: new => closed
automated test added searching for user and group with directory server stopped.[[BR]]
1. stop sssd and remove databases to ensure no cache 2. stop directory server 3. start sssd and search for a user and a group 4. check /var/log/messages for segfault 5. start directory server 6. wait ample time for cache (all settings at 1 - sleep 5) 7 search for a user and group
Is this sufficient to verify this issue?
When you "search for a user and a group" make sure you're doing it directly, not an enumeration. This makes a difference. (The segfault only happened on specific lookup).
Otherwise, it looks fine.
That's what I am doing - great. Thanks
tests: 1 => 0 testsupdated: 0 => 1
rhbz: => 0
Metadata Update from @sgallagh: - Issue assigned to simo - Issue set to the milestone: SSSD 0.6.1
SSSD is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in SSSD's github repository.
This issue has been cloned to Github and is available here: - https://github.com/SSSD/sssd/issues/1260
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.