[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Fri May 4 01:03:03 UTC 2018


The branch, master has been updated
       via  53ff08a s3:cleanupd: sends MSG_SMB_UNLOCK twice to interested peers
       via  d3b9d11 s3:cleanupd: use MSG_SMB_BRL_VALIDATE to signal cleanupd unclean process shutdown
      from  a753ccf s3:smbspool: Fix cmdline argument handling

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 53ff08a2cf838c0f1c3f050ac2aa13fc3acc5981
Author: Ralph Boehme <slow at samba.org>
Date:   Tue May 1 09:53:36 2018 +0200

    s3:cleanupd: sends MSG_SMB_UNLOCK twice to interested peers
    
    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.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=13416
    
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Fri May  4 03:02:28 CEST 2018 on sn-devel-144

commit d3b9d11bade8bc52d08688ee66a4a20fe0a31a04
Author: Ralph Boehme <slow at samba.org>
Date:   Mon Apr 30 19:03:41 2018 +0200

    s3:cleanupd: use MSG_SMB_BRL_VALIDATE to signal cleanupd unclean process shutdown
    
    Since 6423ca4bf293cac5e2f84b1a37bb29b06b5c05ed messaging_send_all()
    broadcasts messages in a cluster, so cleanupd receives those broadcasts
    and acts upon it by re-broadcasting the message. Result: message
    storm.
    
    By reactivating the currently unused MSG_SMB_BRL_VALIDATE for the
    trigger message to cleanupd we avoid the storm.
    
    Note that MSG_SMB_BRL_VALIDATE was unused only in the sense that noone
    *listened* to it, but we were still *sending* the message in
    smbd_parent_ctdb_reconfigured(). de6fe2a1dd6ab03b1c369b61da17fded72305b2d
    removed listening for MSG_SMB_BRL_VALIDATE from cleanupd. This commits
    brings it back.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=13414
    
    Signed-off-by: Ralph Boehme <slow at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/server.c        | 2 +-
 source3/smbd/smbd_cleanupd.c | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index e7e297f..07d7136 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -757,7 +757,7 @@ static void cleanup_timeout_fn(struct tevent_context *event_ctx,
 	parent->cleanup_te = NULL;
 
 	messaging_send_buf(parent->msg_ctx, parent->cleanupd,
-			   MSG_SMB_UNLOCK, NULL, 0);
+			   MSG_SMB_BRL_VALIDATE, NULL, 0);
 }
 
 static void cleanupd_started(struct tevent_req *req)
diff --git a/source3/smbd/smbd_cleanupd.c b/source3/smbd/smbd_cleanupd.c
index 5bd18c1..6ed8720 100644
--- a/source3/smbd/smbd_cleanupd.c
+++ b/source3/smbd/smbd_cleanupd.c
@@ -71,7 +71,7 @@ struct tevent_req *smbd_cleanupd_send(TALLOC_CTX *mem_ctx,
 		return tevent_req_post(req, ev);
 	}
 
-	status = messaging_register(msg, NULL, MSG_SMB_UNLOCK,
+	status = messaging_register(msg, NULL, MSG_SMB_BRL_VALIDATE,
 				    smbd_cleanupd_unlock);
 	if (tevent_req_nterror(req, status)) {
 		return tevent_req_post(req, ev);
@@ -98,8 +98,6 @@ static void smbd_cleanupd_unlock(struct messaging_context *msg,
 	DBG_WARNING("Cleaning up brl and lock database after unclean "
 		    "shutdown\n");
 
-	messaging_send_all(msg, MSG_SMB_UNLOCK, NULL, 0);
-
 	brl_revalidate(msg, private_data, msg_type, server_id, data);
 }
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list