Winbindd using 100% of CPU. Any solution?

Richard Sharpe realrichardsharpe at gmail.com
Tue Dec 17 13:40:04 MST 2013


On Mon, Dec 16, 2013 at 1:56 PM, Richard Sharpe
<realrichardsharpe at gmail.com> wrote:
> On Mon, Dec 16, 2013 at 11:10 AM, Richard Sharpe
> <realrichardsharpe at gmail.com> wrote:
>
> More info ... because I see this in the log:
>
>    adding 0x80334c940 to list at 0xeac360
>
> but do not see this:
>
>    removing %p from list %p
>
> and because I see that the PID has been initialized, it looks like
> child->sock has been set to -1 without removing the child from the
> winbindd_children list!

That first entry looked bogus, and consistent, so I added some code to catch it:

Program received signal SIGABRT, Aborted.
0x00000008029ec78c in kill () from /lib/libc.so.7
(gdb) where
#0  0x00000008029ec78c in kill () from /lib/libc.so.7
#1  0x00000008029eb58b in abort () from /lib/libc.so.7
#2  0x0000000000591e3d in dump_core () at lib/fault.c:391
#3  0x00000000005a5304 in smb_panic (why=0xb618bf "bad entry 0xeac360")
    at lib/util.c:1133
#4  0x00000000004bce20 in fork_domain_child (child=0xeac360)
    at winbindd/winbindd_dual.c:1407
#5  0x00000000004b9293 in wb_child_request_trigger (req=0x80338e450,
private_data=0x0)
    at winbindd/winbindd_dual.c:203
#6  0x00000000005bdaf9 in tevent_queue_immediate_trigger (ev=0x80331e110,
    im=0x80331f3d0, private_data=0x8033304d0) at
../lib/tevent/tevent_queue.c:144
#7  0x00000000005bbee8 in tevent_common_loop_immediate (ev=0x80331e110)
    at ../lib/tevent/tevent_immediate.c:135
#8  0x00000000005b8a32 in run_events_poll (ev=0x80331e110, pollrtn=0, pfds=0x0,
    num_pfds=0) at lib/events.c:197
#9  0x00000000005b928b in s3_event_loop_once (ev=0x80331e110,
    location=0xb520c4 "winbindd/winbindd.c:1456") at lib/events.c:331
#10 0x00000000005ba4ff in _tevent_loop_once (ev=0x80331e110,
    location=0xb520c4 "winbindd/winbindd.c:1456") at ../lib/tevent/tevent.c:494
#11 0x000000000048a5a5 in main (argc=3, argv=0x7fffffffecb0,
envp=0x7fffffffecd0)
    at winbindd/winbindd.c:1456

Before I hit this, this is what I saw on the list:

(gdb) p *winbindd_children
$1 = {next = 0x80330b100, prev = 0x803358a60, pid = 58473, domain = 0x803345a00,
  logfilename = 0x80338b280 "/var/log/samba/log.wb-XCHANGE", sock = -1,
  queue = 0x80338b250, binding_handle = 0x80338b350, lockout_policy_event = 0x0,
  machine_password_change_event = 0x0, table = 0xe09580}
(gdb) p *winbindd_children->next
$2 = {next = 0x803379b80, prev = 0x803358d60, pid = 58472, domain = 0x803344e00,
  logfilename = 0x80332ff80 "/var/log/samba/log.wb-VISTAPILOT", sock = 25,
  queue = 0x80332f650, binding_handle = 0x803330050, lockout_policy_event = 0x0,
  machine_password_change_event = 0x0, table = 0xe09580}
(gdb) p *winbindd_children->next->next
$3 = {next = 0x803358a60, prev = 0x80330b100, pid = 58471, domain = 0x803344800,
  logfilename = 0x80332f780 "/var/log/samba/log.wb-NISTROOT", sock = 24,
  queue = 0x80332f750, binding_handle = 0x80332fd50, lockout_policy_event = 0x0,
  machine_password_change_event = 0x0, table = 0xe09580}
(gdb) p *winbindd_children->next->next->next
$4 = {next = 0x0, prev = 0x803379b80, pid = 58467, domain = 0x803344200,
  logfilename = 0x803330380 "/var/log/samba/log.wb-NIST", sock = 21,
  queue = 0x803330350, binding_handle = 0x803330450, lockout_policy_event = 0x0,
  machine_password_change_event = 0x0, table = 0xe09580}
(gdb) p &winbindd_children
$5 = (struct winbindd_child **) 0xeac340

The list looks well structured at this point.



-- 
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)


More information about the samba-technical mailing list