[
https://issues.apache.org/jira/browse/IGNITE-24981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-24981:
---------------------------------------
Epic Link: IGNITE-22115
> Partition storage is missing on table creation with colocation
> --------------------------------------------------------------
>
> Key: IGNITE-24981
> URL: https://issues.apache.org/jira/browse/IGNITE-24981
> Project: Ignite
> Issue Type: Bug
> Reporter: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
>
> From time to time the following test
> class ItBigZoneStopTest extends ClusterPerTestIntegrationTest {
> @Override
> protected int initialNodes() {
> return 2;
> }
> @Test
> void test() {
> Ignite node = cluster.node(0);
> node.sql().executeScript(
> "CREATE ZONE TEST_ZONE WITH STORAGE_PROFILES='default', PARTITIONS=96;"
> + "CREATE TABLE TEST_TABLE(id INT PRIMARY KEY, val VARCHAR(255)) ZONE
> TEST_ZONE"
> );
> node.sql().execute(null, "SELECT * FROM TEST_TABLE").close();
> }
> }
>
>
> fails with the following:
>
> java.util.concurrent.CompletionException: java.lang.AssertionError:
> Partition storage is missing [zoneId=18, tableId=19, partitionId=58].
> at
> java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:757)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2110)
> ~[?:?]
> at
> org.apache.ignite.internal.index.IndexBuildController.lambda$onPrimaryReplicaElected$7(IndexBuildController.java:280)
> ~[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.complete(CompletableFuture.java:2075)
> ~[?:?]
> at
> org.apache.ignite.internal.util.CompletableFutures.lambda$copyStateTo$2(CompletableFutures.java:160)
> ~[main/:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
> ~[?:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.copyState(BaseVersionedValue.java:335)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:219)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$2(IncrementalVersionedValue.java:283)
> ~[main/:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
> ~[?:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.completeInternal(IncrementalVersionedValue.java:283)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue$1.onUpdate(IncrementalVersionedValue.java:112)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$dependingOn$0(IncrementalVersionedValue.java:83)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.lambda$notifyCompletionListeners$6(BaseVersionedValue.java:367)
> ~[main/:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
> ~[?:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.notifyCompletionListeners(BaseVersionedValue.java:362)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:228)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$2(IncrementalVersionedValue.java:283)
> ~[main/:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
> ~[?:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.completeInternal(IncrementalVersionedValue.java:283)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue$1.onUpdate(IncrementalVersionedValue.java:112)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$dependingOn$0(IncrementalVersionedValue.java:83)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.lambda$notifyCompletionListeners$6(BaseVersionedValue.java:367)
> ~[main/:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
> ~[?:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.notifyCompletionListeners(BaseVersionedValue.java:362)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:228)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$2(IncrementalVersionedValue.java:283)
> ~[main/:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
> ~[?:?]
> at
> java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
> ~[?:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue.completeInternal(IncrementalVersionedValue.java:283)
> ~[main/:?]
> at
> org.apache.ignite.internal.causality.IncrementalVersionedValue$1.onUpdate(IncrementalVersionedValue.java:112)
> ~[main/:?]
> at
> org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyUpdateRevisionListeners(WatchProcessor.java:377)
> ~[main/:?]
>
> Looks like there is a race between electing a zone primary and creating a
> table partition storage for the same partition.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)