#1913 SSSD crashes during nsupdate if the client hostname can't be resolved
Closed: Fixed None Opened 10 years ago by jhrozek.

Reported on sssd-devel list:

[sssd[be[default]]] [be_run_online_cb] (0x0080): Going online. Running callbacks.
[sssd[be[default]]] [ad_dyndns_nsupdate_done] (0x0040): DNS update finished
[sssd[be[default]]] [resolv_gethostbyname_done] (0x0040): querying hosts database failed [5]: Error de entrada/salida
[sssd[be[default]]] [nsupdate_get_addrs_done] (0x0040): Could not resolve address for this machine, error [5]: Error de entrada/salida, resolver returned: [11]: Could not contact DNS servers
[sssd[be[default]]] [nsupdate_get_addrs_done] (0x0040):
[sssd] [sbus_dispatch] (0x0080): Connection is not open for dispatching.

Fields changed

summary: SSSD crashes during nsupdate if the client address can't be resolved => SSSD crashes during nsupdate if the client hostname can't be resolved

Fields changed

milestone: NEEDS_TRIAGE => SSSD 1.10.0
rhbz: => 0

Adjusting priority. A crash is important to get fixed.

priority: major => critical

I was able to reproduce this bug with sssd 1_10_beta2 (commit f21376f)

#0  0x00007f5322ef7de8 in _IO_vfprintf_internal (s=<optimized out>, format=<optimized out>, ap=<optimized out>) at vfprintf.c:1615
#1  0x00007f5322efbabf in buffered_vfprintf (s=s@entry=0x7f53232621a0 <_IO_2_1_stderr_>, format=format@entry=0x432638 "nsupdate_get_addrs_done failed: [%d]: [%s]\n", 
    args=args@entry=0x7fffb86e9c48) at vfprintf.c:2299
#2  0x00007f5322ef6c1e in _IO_vfprintf_internal (s=s@entry=0x7f53232621a0 <_IO_2_1_stderr_>, format=format@entry=0x432638 "nsupdate_get_addrs_done failed: [%d]: [%s]\n", 
    ap=0x7fffb86e9c48) at vfprintf.c:1269
#3  0x00007f5322fb8515 in ___vfprintf_chk (fp=0x7f53232621a0 <_IO_2_1_stderr_>, flag=flag@entry=1, format=format@entry=0x432638 "nsupdate_get_addrs_done failed: [%d]: [%s]\n", 
    ap=ap@entry=0x7fffb86e9c48) at vfprintf_chk.c:34
#4  0x00007f53232692f4 in vfprintf (__ap=0x7fffb86e9c48, __fmt=0x432638 "nsupdate_get_addrs_done failed: [%d]: [%s]\n", __stream=<optimized out>) at /usr/include/bits/stdio2.h:127
#5  debug_fn (format=format@entry=0x432638 "nsupdate_get_addrs_done failed: [%d]: [%s]\n") at src/util/debug.c:113
#6  0x000000000041b9f2 in nsupdate_get_addrs_done (subreq=<optimized out>) at src/providers/dp_dyndns.c:728
#7  0x00007f532674d0b7 in tevent_req_finish (location=0x435328 "src/resolv/async_resolv.c:1362", state=TEVENT_REQ_USER_ERROR, req=0x1f3a5f0) at ../tevent_req.c:110
#8  _tevent_req_error (req=req@entry=0x1f3a5f0, error=error@entry=5, location=location@entry=0x435328 "src/resolv/async_resolv.c:1362") at ../tevent_req.c:128
#9  0x000000000042a14c in resolv_gethostbyname_done (subreq=0x0) at src/resolv/async_resolv.c:1362
#10 0x00007f532674d0b7 in tevent_req_finish (location=0x434b6d "src/resolv/async_resolv.c:922", state=TEVENT_REQ_USER_ERROR, req=0x1f36140) at ../tevent_req.c:110
#11 _tevent_req_error (req=req@entry=0x1f36140, error=<optimized out>, location=location@entry=0x434b6d "src/resolv/async_resolv.c:922") at ../tevent_req.c:128
#12 0x000000000042ab35 in resolv_gethostbyname_dns_query_done (arg=<optimized out>, status=11, timeouts=0, abuf=0x0, alen=0) at src/resolv/async_resolv.c:922
#13 0x00007f5326bcc0b4 in end_squery (squery=squery@entry=0x1f443a0, status=<optimized out>, abuf=<optimized out>, alen=<optimized out>) at ares_search.c:208
#14 0x00007f5326bcc269 in search_callback (arg=0x1f443a0, status=<optimized out>, timeouts=<optimized out>, abuf=<optimized out>, alen=<optimized out>) at ares_search.c:155
#15 0x00007f5326bcbe12 in qcallback (arg=0x1f321d0, status=<optimized out>, timeouts=<optimized out>, abuf=<optimized out>, alen=<optimized out>) at ares_query.c:180
#16 0x00007f5326bca7da in end_query (channel=0x1f4f680, query=0x1f3a3f0, status=11, abuf=abuf@entry=0x0, alen=alen@entry=0) at ares_process.c:1266
#17 0x00007f5326bcaff6 in next_server (channel=channel@entry=0x1f4f680, query=<optimized out>, now=now@entry=0x7fffb86ea2f0) at ares_process.c:721
#18 0x00007f5326bcb0b4 in handle_error (channel=channel@entry=0x1f4f680, whichserver=whichserver@entry=0, now=now@entry=0x7fffb86ea2f0) at ares_process.c:657
#19 0x00007f5326bcb71c in read_udp_packets (channel=channel@entry=0x1f4f680, read_fds=read_fds@entry=0x0, read_fd=read_fd@entry=17, now=now@entry=0x7fffb86ea2f0) at ares_process.c:488
#20 0x00007f5326bcbac7 in processfds (channel=0x1f4f680, read_fds=read_fds@entry=0x0, read_fd=17, write_fds=write_fds@entry=0x0, write_fd=write_fd@entry=-1) at ares_process.c:152
#21 0x00007f5326bcbdce in ares_process_fd (channel=<optimized out>, read_fd=<optimized out>, write_fd=write_fd@entry=-1) at ares_process.c:173
#22 0x0000000000428d02 in fd_input_available (ev=<optimized out>, fde=<optimized out>, flags=1, data=<optimized out>) at src/resolv/async_resolv.c:148
#23 0x00007f532674f552 in epoll_event_loop (tvalp=0x7fffb86ea3d0, std_ev=0x1ef66e0) at ../tevent_standard.c:328
#24 std_event_loop_once (ev=<optimized out>, location=<optimized out>) at ../tevent_standard.c:567
#25 0x00007f532674c060 in _tevent_loop_once (ev=ev@entry=0x1ef6600, location=location@entry=0x7f53269b7047 "src/util/server.c:602") at ../tevent.c:507
#26 0x00007f532674c1eb in tevent_common_loop_wait (ev=0x1ef6600, location=0x7f53269b7047 "src/util/server.c:602") at ../tevent.c:608
#27 0x00007f53269a0513 in server_loop (main_ctx=0x1ef7840) at src/util/server.c:602
#28 0x0000000000405759 in main (argc=<optimized out>, argv=<optimized out>) at src/providers/data_provider_be.c:2771

changelog: =>

Problem was in debug message, missing argument (format string expects two arguments)

        DEBUG(SSSDBG_OP_FAILURE,
              ("nsupdate_get_addrs_done failed: [%d]: [%s]\n",
               sss_strerror(ret)));

This bug has already been fixed in master e9ea740

Fields changed

owner: somebody => lslebodn

Fields changed

resolution: => fixed
status: new => closed

Moving to 1.10 beta where the ticket was actually fixed.

milestone: SSSD 1.10.0 => SSSD 1.10 beta

Metadata Update from @jhrozek:
- Issue assigned to lslebodn
- Issue set to the milestone: SSSD 1.10 beta

7 years ago

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/2955

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Login to comment on this ticket.

Metadata