1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00

Reduce the race condition in Samba4 in RAW-RENAME test. We rename a file

using trans2 setfileinfo on one connection, and then check the
file name has changed on the other. In Samba we achieve this by
sending a local message to the other process. This change causes
us to re-scan for incoming messages after we've woken up from the
select (which is cheap if there are no pending messages). This reduces
the race significantly. Volker please review.
Jeremy.
This commit is contained in:
Jeremy Allison 2008-03-31 16:46:20 -07:00
parent 3cb1cdee93
commit a7499e994a

View File

@ -853,6 +853,15 @@ static NTSTATUS receive_message_or_smb(TALLOC_CTX *mem_ctx, char **buffer,
goto again;
}
/*
* We've just woken up from a protentially long select sleep.
* Ensure we process local messages as we need to synchronously
* process any messages from other smbd's to avoid file rename race
* conditions. This call is cheap if there are no messages waiting.
* JRA.
*/
message_dispatch(smbd_messaging_context());
/* if we get EINTR then maybe we have received an oplock
signal - treat this as select returning 1. This is ugly, but
is the best we can do until the oplock code knows more about