From: Stoiko Ivanov <s.ivanov@proxmox.com>
To: pmg-devel@lists.proxmox.com
Subject: [pmg-devel] [PATCH pmg-api 1/2] fix clustersync after node-deletion
Date: Wed, 18 Nov 2020 15:52:53 +0100 [thread overview]
Message-ID: <20201118145254.26214-2-s.ivanov@proxmox.com> (raw)
In-Reply-To: <20201118145254.26214-1-s.ivanov@proxmox.com>
This patch creates the spoolsdirs for a newly joining clusternode on the
master (/var/spool/pmg/cluster/<newnode-cid>/(spam|attachment|virus).
This is necessary in order to prevent a failing cluster-sync for nodes, joining
the cluster after that node has been deleted. (This happens if you remove
a node from the cluster and directly rejoin it to the same masternode):
On the first sync after a node was deleted (there is no section config for a
number < maxcid) each node tries to sync the quarantine for the deleted node
from the cluster (in order to be promotable to new master). This rsync
fails because the spooldir for that node never got created on the master.
The spooldir for a node gets created on the master on the first sync of a node
which can be 2 minutes after joining the cluster (and leaving it again).
Reported via our enterprise support portal.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
src/PMG/API2/Cluster.pm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/PMG/API2/Cluster.pm b/src/PMG/API2/Cluster.pm
index ceda100..7eab761 100644
--- a/src/PMG/API2/Cluster.pm
+++ b/src/PMG/API2/Cluster.pm
@@ -302,6 +302,10 @@ __PACKAGE__->register_method({
$next_cid = ++$master->{maxcid};
}
+ # create spooldir for new node to prevent problems if it gets
+ # delete from the cluster before being synced initially
+ PMG::MailQueue::create_spooldirs($master->{maxcid});
+
my $node = {
type => 'node',
cid => $master->{maxcid},
--
2.20.1
next prev parent reply other threads:[~2020-11-18 14:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-18 14:52 [pmg-devel] [PATCH pmg-api 0/2] fix 2 small glitches in clustered environments Stoiko Ivanov
2020-11-18 14:52 ` Stoiko Ivanov [this message]
2020-11-18 16:03 ` [pmg-devel] applied: [PATCH pmg-api 1/2] fix clustersync after node-deletion Thomas Lamprecht
2020-11-18 14:52 ` [pmg-devel] [PATCH pmg-api 2/2] do not create /cluster/<cid> unconditionally Stoiko Ivanov
2020-11-18 16:03 ` [pmg-devel] applied: " Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201118145254.26214-2-s.ivanov@proxmox.com \
--to=s.ivanov@proxmox.com \
--cc=pmg-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox