[PATCH] Patch for bug 13416: cleanupd sends MSG_SMB_UNLOCK twice to interested peers

Jeremy Allison jra at samba.org
Thu May 3 22:06:55 UTC 2018


On Wed, May 02, 2018 at 12:05:30PM +0200, Ralph Böhme via samba-technical wrote:
> Hi!
> 
> Stumpled across this one while looking at the MSG_SMB_UNLOCK broadcast storm
> issue.
> 
> MSG_SMB_UNLOCK should be send to smbd that are waiting on blocked                                
> byte-range-locks when a lock holder died.     
>                                               
> In smbd_cleanupd_unlock() we do this twice: once via a broadcast and                             
> then again via brl_revalidate() to processes that are actually recorded                          
> in brlock.tdb.                                
>                                               
> As brl_revalidate() should already take care of signaling anyone who                             
> would be interested in the message, there's no need to broadcast.
> 
> Attached patch removes the broadcast.
> 
> Please review carefully and push if ok. I'm still suspecting that I'm missing a
> subtlety around MSG_SMB_UNLOCK...

No I don't think so (missing the subtlety that is). brl_revalidate() sending
MSG_SMB_UNLOCK is OK as the receivers of MSG_SMB_UNLOCK are designed to be
idempotent, remember this can happen multiple times if smbd's fail so
it's OK to be triggered many times in a row (except for the broadcast
storm aspect of it, which you fixed in the previous patch :-).

RB+ and pushed !

Thanks,

	Jeremy.



More information about the samba-technical mailing list