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 <[email protected]>
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 <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>
    
    Autobuild-User(master): Jeremy Allison <[email protected]>
    Autobuild-Date(master): Fri May  4 03:02:28 CEST 2018 on sn-devel-144

commit d3b9d11bade8bc52d08688ee66a4a20fe0a31a04
Author: Ralph Boehme <[email protected]>
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 <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

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

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

Reply via email to