summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2018-04-30 19:03:41 +0200
committerKarolin Seeger <kseeger@samba.org>2018-05-07 09:56:11 +0200
commitdc7b7beeee61beab3d23a7678090208f7d345901 (patch)
tree00d8146303c7899dcb23cee129d6f89b0bf00e27 /source3
parent0ccfe32047e0214a262b9392ece677ac0bc085e1 (diff)
downloadsamba-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.c2
-rw-r--r--source3/smbd/smbd_cleanupd.c2
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);