Pavel Pereslegin created IGNITE-25167:
-----------------------------------------
Summary: Catalog compaction should ignore NodeStoppingException.
Key: IGNITE-25167
URL: https://issues.apache.org/jira/browse/IGNITE-25167
Project: Ignite
Issue Type: Improvement
Components: sql
Reporter: Pavel Pereslegin
Currently if compaction iteration fails due to local node shutdown
CatalogCompactionRunner logs useless warning.
{noformat}
[2025-04-16T15:50:51,269][WARN
][%ibiont_n_3344%catalog-compaction-0][CatalogCompactionRunner] Catalog
compaction iteration has failed [lwm=HybridTimestamp [physical=2025-04-16
12:40:51:260 +0000, logical=0, composite=114347688018575360]].
java.util.concurrent.CompletionException:
java.util.concurrent.CompletionException: Failed to propagate minimum required
tx time to replicas.
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.lambda$startCompaction$4(CatalogCompactionRunner.java:336)
~[main/:?]
at
java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:986)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.uniExceptionallyStage(CompletableFuture.java:1004)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.exceptionally(CompletableFuture.java:2313)
~[?:?]
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.lambda$startCompaction$5(CatalogCompactionRunner.java:331)
~[main/:?]
at
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
[?:?]
at
java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
[?:?]
at
java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649)
[?:?]
at
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
[?:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[?:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[?:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.util.concurrent.CompletionException: Failed to propagate
minimum required tx time to replicas.
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.lambda$startCompaction$2(CatalogCompactionRunner.java:325)
~[main/:?]
at
java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:986)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.uniExceptionallyStage(CompletableFuture.java:1004)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.exceptionally(CompletableFuture.java:2313)
~[?:?]
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.lambda$startCompaction$5(CatalogCompactionRunner.java:324)
~[main/:?]
... 8 more
Caused by: java.util.concurrent.CompletionException:
org.apache.ignite.internal.lang.NodeStoppingException: IGN-CMN-1
TraceId:e6deb954-37f6-4b6a-a5f2-b38a13096fd7 Operation has been cancelled (node
is stopping).
at
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1452)
~[?:?]
at
java.base/java.util.concurrent.CompletableFuture.allOf(CompletableFuture.java:2343)
~[?:?]
at
org.apache.ignite.internal.util.CompletableFutures.allOf(CompletableFutures.java:112)
~[main/:?]
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.propagateTimeToNodes(CatalogCompactionRunner.java:415)
~[main/:?]
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.lambda$startCompaction$5(CatalogCompactionRunner.java:323)
~[main/:?]
... 8 more
Caused by: org.apache.ignite.internal.lang.NodeStoppingException: Operation has
been cancelled (node is stopping).
at
org.apache.ignite.internal.network.DefaultMessagingService.send0(DefaultMessagingService.java:255)
~[main/:?]
at
org.apache.ignite.internal.network.DefaultMessagingService.send(DefaultMessagingService.java:192)
~[main/:?]
at
org.apache.ignite.internal.network.MessagingService.send(MessagingService.java:53)
~[main/:?]
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.propagateTimeToNodes(CatalogCompactionRunner.java:412)
~[main/:?]
at
org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.lambda$startCompaction$5(CatalogCompactionRunner.java:323)
~[main/:?]
... 8 more
{noformat}
It looks like it's better to ignore the NodeStoppingException and not log a
warning in such cases.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)