Change Notification

Juergen Hasch Hasch at t-online.de
Tue Jan 14 06:52:00 GMT 2003


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.

So I think Samba forgets to call process_pending_change_notify_queue() 
after a copy operation,
so a Windows application waiting for a change notification doesn't get 
noticed or only after some
time when other file operations triggered the 
process_pending_change_notify_queue() call.

...Juergen





More information about the samba-technical mailing list