[Samba] Re: Also seeing high winbindd CPU usage

David Eisner deisner at gmail.com
Fri Aug 8 17:22:14 GMT 2008


On Tue, Aug 5, 2008 at 5:01 PM, David Eisner <deisner at gmail.com> wrote:
> I've compiled (with Sun Studio cc) and installed samba-3.2.1 on a
> Solaris 10 x64 box, which is a member of a (Windows Server 2003
> controlled) domain.  I previously had samba 3.0.28a running on the
> same machine without any problems.  Now winbindd is eating up all of
> the CPU (on the CPU it's assigned to).
...
> Is this potentially a known bug?


Guess not.  Here's some more information.  First, this is what I see with top:

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  2005 root       1  20    0  231M  221M cpu/1    2:46 49.96% winbindd
  2006 root       1  54    0   17M 6792K sleep    0:26  3.87% winbindd


First some poor man's profiling: When I attach a debugger to the
parent process (pid 2005), and suspend it, the stack typically looks
like this:

(dbx) where
current thread: t at 1
  [1] __pollsys(0x8047550, 0x4, 0x8047630, 0x0), at 0xfe8f51d7
  [2] _pollsys(0x8047550, 0x4, 0x8047630, 0x0), at 0xfe8e98a4
  [3] _pselect(0x11, 0x8047750, 0x80477d0, 0xfe920318, 0x8047630,
0x0), at 0xfe8a317a
  [4] _select(0x11, 0x8047750, 0x80477d0, 0x0, 0x8047850), at 0xfe8a3470
=>[5] sys_select(maxfd = 17, readfds = 0x8047750, writefds =
0x80477d0, errorfds = (nil), tval = 0x8047850), line 93 in "select.c"
  [6] process_loop(), line 911 in "winbindd.c"
  [7] main(argc = 2, argv = 0x8047b60, envp = 0x8047b6c), line 1283 in
"winbindd.c"
(dbx)

[I could only get dbx to work -- gdb complained and dumped core].

And when I attach to the child process, which uses less CPU, I see this:

(dbx) where
current thread: t at 1
  [1] __pollsys(0x8045b50, 0x2, 0x0, 0x0), at 0xfe8f51d7
  [2] _pollsys(0x8045b50, 0x2, 0x0, 0x0), at 0xfe8e98a4
  [3] _pselect(0x12, 0x80473a8, 0xfe920318, 0xfe920318, 0x0, 0x0), at
0xfe8a317a
  [4] _select(0x12, 0x80473a8, 0x0, 0x0, 0x0), at 0xfe8a3470
=>[5] sys_select(maxfd = 18, readfds = 0x80473a8, writefds = (nil),
errorfds = (nil), tval = (nil)), line 93 in "select.c"
  [6] fork_domain_child(child = 0x885a2fc), line 1178 in "winbindd_dual.c"
  [7] schedule_async_request(child = 0x885a2fc), line 297 in "winbindd_dual.c"
  [8] async_request(mem_ctx = 0x8854a78, child = 0x885a2fc, request =
0x88535f0, response = 0x885b170, continuation = 0x815c810 =
&`winbindd`winbindd_util.c`init_child_recv(void *private_data, _Bool
success), private_data = 0x8853e58), line 141 in "winbindd_dual.c"
  [9] init_child_connection(domain = 0x8859d38, continuation =
0x8193f60 = &`winbindd`winbindd_dual.c`domain_init_recv(void
*private_data_data, _Bool success), private_data = 0x88596f0), line
573 in "winbindd_util.c"
  [10] async_domain_request(mem_ctx = 0x8856570, domain = 0x8859d38,
request = 0x88524a0, response = 0x885a390, continuation = 0x815b74c =
&`winbindd`winbindd_util.c`trustdom_recv(void *private_data, _Bool
success), private_data_data = 0x8856930), line 359 in
"winbindd_dual.c"
  [11] add_trusted_domains(domain = 0x8859d38), line 249 in "winbindd_util.c"
  [12] rescan_trusted_domains(), line 510 in "winbindd_util.c"
  [13] process_loop(), line 862 in "winbindd.c"
  [14] main(argc = 2, argv = 0x8047b60, envp = 0x8047b6c), line 1283
in "winbindd.c"


By the way, this is with samba recompiled with debugging enabled and
no optimization.

I'll continue slogging through the code, but if anybody can tell from
this where the problem might be, please let me know.  Thanks.

-David

-- 
David Eisner http://cradle.brokenglass.com


More information about the samba mailing list