I'm running freeipa on a centos machine as the provider for sudo rules and experiencing segfault issues on an opensuse tumbleweed client that was recently updated to sssd 2.0.0 [1].
Using sudo works normally (i.e. using the rules from ipa) for some time after a reboot, but sssd_sudo starts segfaulting at some point and sudo falls back to the sudoers file for rules. Restarting the sssd service doesn't help.
This is what journalctl says (I left in the automount message which I think is coming from the coredumping, not sssd_sudo itself)
Oct 12 13:32:19 hostname kernel: show_signal_msg: 40 callbacks suppressed Oct 12 13:32:19 hostname kernel: sssd_sudo[1357]: segfault at 555d0064 ip 00007f9d522b52f6 sp 00007ffd27ac6378 error 4 in libc-2.27.so[7f9d5221c000+1b6000] Oct 12 13:32:19 hostname kernel: Code: 0f 1f 40 00 66 0f ef c0 66 0f ef c9 66 0f ef d2 66 0f ef db 48 89 f8 48 89 f9 48 81 e1 ff 0f 00 00 48 81 f9 cf 0f 00 00 77 6a <f3> 0f 6f 20 66 0f 74 e0 66 0f d7 d4 85 d2 74 04 0f bc c2 c3 48 83 Oct 12 13:32:19 hostname systemd[1]: Created slice system-systemd\x2dcoredump.slice. Oct 12 13:32:19 hostname systemd[1]: Started Process Core Dump (PID 10419/UID 0). Oct 12 13:32:19 hostname automount[2378]: do_mount_indirect: indirect trigger not valid or already mounted /home/user Oct 12 13:32:19 hostname automount[2378]: dev_ioctl_send_fail:499: AUTOFS_DEV_IOCTL_FAIL: error Invalid argument ... Oct 12 13:32:19 hostname sudo[10418]: user : problem with defaults entries ; TTY=pts/3 ; PWD=/home/user ; USER=root ; Oct 12 13:32:19 hostname systemd-coredump[10420]: Process 1357 (sssd_sudo) of user 0 dumped core.
systemd-coredump produces a dump with this backtrace:
#0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120 #1 0x00007f38d6e8c8f7 in _IO_vfprintf_internal (s=s@entry=0x55d28acdf6a0, format=format@entry=0x55d289998000 "Unable to get information from Data Provider, Error: %u, %u, %s\n", ap=0x7ffe8dd4e500) at vfprintf.c:1643 #2 0x00007f38d6f44048 in ___vfprintf_chk (fp=0x55d28acdf6a0, flag=flag@entry=1, format=format@entry=0x55d289998000 "Unable to get information from Data Provider, Error: %u, %u, %s\n", ap=ap@entry=0x7ffe8dd4e500) at vfprintf_chk.c:33 #3 0x00007f38d75235fb in vfprintf (__ap=0x7ffe8dd4e500, __fmt=0x55d289998000 "Unable to get information from Data Provider, Error: %u, %u, %s\n", __stream=<optimized out>) at /usr/include/bits/stdio2.h:127 #4 debug_vprintf (ap=0x7ffe8dd4e500, format=0x55d289998000 "Unable to get information from Data Provider, Error: %u, %u, %s\n") at src/util/debug.c:183 #5 sss_vdebug_fn (file=<optimized out>, line=<optimized out>, function=<optimized out>, level=<optimized out>, flags=flags@entry=0, format=format@entry=0x55d289998000 "Unable to get information from Data Provider, Error: %u, %u, %s\n", ap=0x7ffe8dd4e500) at src/util/debug.c:322 #6 0x00007f38d7523772 in sss_debug_fn (file=file@entry=0x55d2899979c8 "src/responder/sudo/sudosrv_get_sudorules.c", line=line@entry=582, function=function@entry=0x55d2899984c0 <__FUNCTION__.13989> "sudosrv_refresh_rules_done", level=level@entry=32, format=format@entry=0x55d289998000 "Unable to get information from Data Provider, Error: %u, %u, %s\n") at src/util/debug.c:338 #7 0x000055d289981203 in sudosrv_refresh_rules_done (subreq=0x0) at src/responder/sudo/sudosrv_get_sudorules.c:579 #8 0x00007f38d74efce2 in _tevent_req_error (req=<optimized out>, error=<optimized out>, location=<optimized out>) at ../tevent_req.c:209 #9 0x00007f38d74efce2 in _tevent_req_error (req=req@entry=0x55d28ad94410, error=error@entry=1432158308, location=location@entry=0x7f38d75131f8 "src/sss_iface/sbus_sss_client_async.c:283") at ../tevent_req.c:209 #10 0x00007f38d7507102 in sbus_method_in_raw_out_qus_done (subreq=0x0) at src/sss_iface/sbus_sss_client_async.c:283 #11 0x00007f38d74efce2 in _tevent_req_error (req=<optimized out>, error=<optimized out>, location=<optimized out>) at ../tevent_req.c:209 #12 0x00007f38d74efce2 in _tevent_req_error (req=<optimized out>, error=<optimized out>, location=<optimized out>) at ../tevent_req.c:209 #13 0x00007f38d74efce2 in _tevent_req_error (req=req@entry=0x55d28ad92190, error=<optimized out>, location=location@entry=0x7f38d748ed28 "src/sbus/connection/sbus_send.c:179") at ../tevent_req.c:209 #14 0x00007f38d74781a3 in sbus_message_done (pending=0x55d28ad946c0, pvt=<optimized out>) at src/sbus/connection/sbus_send.c:179 #15 0x00007f38d720eada in complete_pending_call_and_unlock (connection=connection@entry=0x55d28ad7dfc0, pending=0x55d28ad946c0, message=message@entry=0x55d28ad7e430) at dbus-connection.c:2332 #16 0x00007f38d7212448 in dbus_connection_dispatch (connection=0x55d28ad7dfc0) at dbus-connection.c:4653 #17 0x00007f38d74778e6 in sbus_dispatch (ev=<optimized out>, te=<optimized out>, tv=..., data=<optimized out>) at src/sbus/connection/sbus_dispatcher.c:98 #18 0x00007f38d74f3c55 in tevent_common_invoke_timer_handler (te=te@entry=0x55d28adaf3f0, current_time=..., removed=removed@entry=0x0) at ../tevent_timed.c:369 #19 0x00007f38d74f3dea in tevent_common_loop_timer_delay (ev=ev@entry=0x55d28acfb610) at ../tevent_timed.c:441 #20 0x00007f38d74f4e67 in epoll_event_loop_once (ev=0x55d28acfb610, location=<optimized out>) at ../tevent_epoll.c:922 #21 0x00007f38d74f32d7 in std_event_loop_once (ev=0x55d28acfb610, location=0x7f38d76ad5d9 "src/util/server.c:724") at ../tevent_standard.c:110 #22 0x00007f38d74ee7e4 in _tevent_loop_once (ev=ev@entry=0x55d28acfb610, location=location@entry=0x7f38d76ad5d9 "src/util/server.c:724") at ../tevent.c:772 #23 0x00007f38d74eea2b in tevent_common_loop_wait (ev=0x55d28acfb610, location=0x7f38d76ad5d9 "src/util/server.c:724") at ../tevent.c:895 #24 0x00007f38d74f3277 in std_event_loop_wait (ev=0x55d28acfb610, location=0x7f38d76ad5d9 "src/util/server.c:724") at ../tevent_standard.c:141 #25 0x00007f38d768c033 in server_loop (main_ctx=0x55d28acdbce0) at src/util/server.c:724 #26 0x000055d28997f374 in main (argc=6, argv=<optimized out>) at src/responder/sudo/sudosrv.c:223
I can also post some logs if you tell me a useful log level. If there is anything else you need, I'll try to provide it.
Cheers.
[1] https://build.opensuse.org/package/show/openSUSE:Factory/sssd?rev=91
Posting the logs would be useful. I think the call to sss_dp_get_sudoers_recv doesn't return a useful err_msg, looks like it's the printinng of the debug message that segfaults.
Thank you for the bug report.
This is with debug_level 8 at the second where the segfault happens. I replaced the actual domain, etc., hope this doesn't alter the logs in a significant way.
Thanks to @pbrezina there is now a PR: https://github.com/SSSD/sssd/pull/676
This was actually reported independently as issue #3854 and fixed there. Thank you for the bug report, though!
Metadata Update from @jhrozek: - Issue close_status updated to: duplicate - Issue status updated to: Closed (was: Open)
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/4843
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.