From fc873f0979d37ee51c62c06888ce092491da5272 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Thu, 7 Nov 2024 15:32:28 +0300 Subject: [PATCH 1/2] node: fix panic in error cases, fix #2970 internalErr has some buffer to accept multiple errors, but it only processes one of them, so if we have some cascading failures with multiple components reporting an error some of them will end up panicking because of closed channed. It's not very critical since the node is to die anyway, but it's nothing good either. This particular case shouldn't really happen after #2996, but leaving this channel open is better than panic in case some other events lead to multiple sends to it. Signed-off-by: Roman Khimov --- CHANGELOG.md | 1 + cmd/neofs-node/main.go | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f2510c65a..f2a1b39ed7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ attribute, which is used for container domain name in NNS contracts (#2954) - Overriding the default container and object attributes only with the appropriate flags (#2985) - RPC client reconnection failures leading to complete SN failure (#2797) - `meta.DB.Open(readOnly)` moves metabase in RO mode (#3000) +- Panic in event listener related to inability to switch RPC node (#2970) ### Changed - `ObjectService`'s `Put` RPC handler caches up to 10K lists of per-object sorted container nodes (#2901) diff --git a/cmd/neofs-node/main.go b/cmd/neofs-node/main.go index d7d6bd8783..86e362e516 100644 --- a/cmd/neofs-node/main.go +++ b/cmd/neofs-node/main.go @@ -173,7 +173,6 @@ func wait(c *cfg) { select { case <-c.ctx.Done(): // graceful shutdown case err := <-c.internalErr: // internal application error - close(c.internalErr) c.ctxCancel() c.log.Warn("internal application error", From d5de08294c77725e66cd27d216592f02cae4f1b4 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Thu, 7 Nov 2024 15:38:57 +0300 Subject: [PATCH 2/2] CHANGELOG: fix whitespace errors Signed-off-by: Roman Khimov --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2a1b39ed7..94773da0ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ Changelog for NeoFS Node - Expose health status of inner ring via Prometheus (#2934) - `neofs-cli control object list` command (#2853) - `node` config option `storage.ignore_uninited_shards` (#2953) -- For `neofs-cli container create`, add `--global-name` flag, that sets name attribute as the value of `__NEOFS__NAME` +- For `neofs-cli container create`, add `--global-name` flag, that sets name attribute as the value of `__NEOFS__NAME` attribute, which is used for container domain name in NNS contracts (#2954) - Save last epoch when metabase was resynchronized (#2966) - `neofs-lens meta last-resync-epoch` command (#2966) @@ -36,7 +36,7 @@ attribute, which is used for container domain name in NNS contracts (#2954) - Use org-wide linter (#2943) - Timestamps are no longer produced in logs if not running with TTY (#2964) - In inner ring config, default ports for TCP addresses are used if they are missing (#2969) -- Metabase is refilled if an object exists in write-cache but is missing in metabase (#2977) +- Metabase is refilled if an object exists in write-cache but is missing in metabase (#2977) - Pprof and metrics services stop at the end of SN's application lifecycle (#2976) - Reject configuration with unknown fields (#2981)