Change Notification

jra at dp.samba.org jra at dp.samba.org
Tue Jan 14 22:37:02 GMT 2003


On Tue, Jan 14, 2003 at 07:49:48AM +0100, Juergen Hasch wrote:
> jra at dp.samba.org wrote:
> 
> >So if I'm understanding you correctly this is actually a kernel
> >bug - correct ?
> >
> >Can you point me at the areas in the kernel source where the problem
> >occurs so I can see how to make smbd work around it until we get the
> >kernel fixed.
> >
> >  
> >
> No it's Samba receiving a signal from the kernel, but not processing it 
> further inside Samba.
> 
> In notify_kernel/signal_handler() signals_received gets increased when a 
> change notification
> is received from the kernel. Now the change notification for this type 
> of event (e.g. copy/
> rename/delete...) needs to be processed inside Samba.
> This is done in process_pending_change_notify_queue() which is called 
> from a few places
> inside e.g. reply.c.
> This is not happening for file copy in my test setup here (using the 
> copy command in windows).
> This means the kernel change notification is no longer active for this 
> type of event, because it
> needs to be restarted in notify_kernel.c/kernel_register_notify().
> 
> Eventually process_pending_change_notify_queue() is called by chance and 
> the received
> change notification signal gets processed at a later random time.

Well it's not called 'by chance'. It's called once smbd gets back to
the main loop should notice in the next select that a changenotify has
occurred (the select should return -1, errno == EINTR and then the
function async_processing() should be called before the next smbd is
processed.

Can you send me a debug level 10 please of the operation failing, plus
an *exact* method of duplicating it (client OS, smb.condf, exact client
windows open and what you do to reproduce it).

Thanks,

	Jeremy.



More information about the samba-technical mailing list