diff options
author | Ralph Boehme <slow@samba.org> | 2018-04-30 19:03:41 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-05-07 09:56:11 +0200 |
commit | dc7b7beeee61beab3d23a7678090208f7d345901 (patch) | |
tree | 00d8146303c7899dcb23cee129d6f89b0bf00e27 /source3 | |
parent | 0ccfe32047e0214a262b9392ece677ac0bc085e1 (diff) | |
download | samba-dc7b7beeee61beab3d23a7678090208f7d345901.tar.gz |
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@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit d3b9d11bade8bc52d08688ee66a4a20fe0a31a04)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/server.c | 2 | ||||
-rw-r--r-- | source3/smbd/smbd_cleanupd.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 79786d68853..49306d5fcf9 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 5bd18c1411c..a9b1e8a1137 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); |