smbd spins in open_sockets(), using 100% CPU.
jra at dp.samba.org
jra at dp.samba.org
Thu Oct 24 20:58:00 GMT 2002
On Thu, Oct 24, 2002 at 04:12:48PM -0400, Dan Barrett wrote:
> Using Linux 2.4.18 and Samba 3.0 Alpha-17, the parent smbd can loop in server.c:open_sockets(), using all CPU.
>
> The problem is that select.c:sys_select() gets into a state where pipe_read==pipe_written, even though there is a byte waiting on the read pipe. So the loop below never empties the read pipe, and select() continues to return immediately with data waiting.....
>
> sys_select()
> ....
> while (pipe_written != pipe_read){
> char c;
> read(select_pipe[0], &c, 1);
> pipe_read++
> }
> ....
> }
This code has been changed since this release. I don't think we suffer from
this bug anymore. Please check out the latest SAMBA_3_0 CVS.
Thanks,
Jeremy.
More information about the samba-technical
mailing list