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