[PATCH] Patch for bug 13416: cleanupd sends MSG_SMB_UNLOCK twice to interested peers
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:
> Stumpled across this one while looking at the MSG_SMB_UNLOCK broadcast storm
> 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 !
More information about the samba-technical