You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2024/03/20 14:52:00 UTC
[jira] [Assigned] (IGNITE-21172) NullPointerException in AbstractTableView.withSchemaSync after table drop
[ https://issues.apache.org/jira/browse/IGNITE-21172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrey Mashenkov reassigned IGNITE-21172:
-----------------------------------------
Assignee: Andrey Mashenkov
> NullPointerException in AbstractTableView.withSchemaSync after table drop
> -------------------------------------------------------------------------
>
> Key: IGNITE-21172
> URL: https://issues.apache.org/jira/browse/IGNITE-21172
> Project: Ignite
> Issue Type: Bug
> Reporter: Pavel Tupitsyn
> Assignee: Andrey Mashenkov
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Run the following test with *disabled assertions* (add to ItTablesApiTest):
> {code}
> @Test
> public void useAfterDrop() {
> Ignite ignite0 = clusterNodes.get(0);
> Table tbl = createTable(ignite0, TABLE_NAME);
> RecordView<Tuple> view = tbl.recordView();
> sql(ignite0, "DROP TABLE " + TABLE_NAME);
> view.insert(null, Tuple.create().set("key", 1L).set("valInt", 1).set("valStr", "1"));
> }
> {code}
> Result:
> {code}
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 TraceId:2292b265-aa9f-4ba4-a8d0-8ea93a2101ef
> at org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:117)
> at org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$convertToPublicFuture$2(IgniteExceptionMapperUtil.java:132)
> at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
> at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
> at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2272)
> at org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.convertToPublicFuture(IgniteExceptionMapperUtil.java:130)
> at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:127)
> at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:102)
> at org.apache.ignite.internal.table.RecordBinaryViewImpl.insertAsync(RecordBinaryViewImpl.java:168)
> at org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:160)
> at org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:47)
> at org.apache.ignite.internal.runner.app.ItTablesApiTest.useAfterDrop(ItTablesApiTest.java:164)
> Caused by: java.lang.NullPointerException
> at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)
> at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
> at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)
> at org.apache.ignite.internal.table.distributed.schema.SchemaVersionsImpl.schemaVersionAt(SchemaVersionsImpl.java:52)
> at org.apache.ignite.internal.table.distributed.schema.SchemaVersionsImpl.schemaVersionAtNow(SchemaVersionsImpl.java:68)
> at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:107)
> ... 75 more
> {code}
> With enabled assertions there is an unfriendly exception:
> {code}
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 TraceId:f84af536-d752-4887-8096-b15d6e0a0efc No table in the catalog after schema sync, table 5, ts HybridTimestamp [physical=2023-12-28 11:20:59:574 +0200, logical=0, composite=111657304691441664]
> at org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:88)
> at org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$convertToPublicFuture$2(IgniteExceptionMapperUtil.java:132)
> at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
> at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
> at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2272)
> at org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.convertToPublicFuture(IgniteExceptionMapperUtil.java:130)
> at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:127)
> at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:102)
> at org.apache.ignite.internal.table.RecordBinaryViewImpl.insertAsync(RecordBinaryViewImpl.java:168)
> at org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:160)
> at org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:47)
> at org.apache.ignite.internal.runner.app.ItTablesApiTest.useAfterDrop(ItTablesApiTest.java:164)
> Caused by: java.lang.AssertionError: No table in the catalog after schema sync, table 5, ts HybridTimestamp [physical=2023-12-28 11:20:59:574 +0200, logical=0, composite=111657304691441664]
> at org.apache.ignite.internal.table.distributed.schema.SchemaVersionsImpl.lambda$tableDescriptor$0(SchemaVersionsImpl.java:60)
> at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)
> at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
> at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)
> at org.apache.ignite.internal.table.distributed.schema.SchemaVersionsImpl.tableDescriptor(SchemaVersionsImpl.java:57)
> at org.apache.ignite.internal.table.distributed.schema.SchemaVersionsImpl.schemaVersionAt(SchemaVersionsImpl.java:51)
> at org.apache.ignite.internal.table.distributed.schema.SchemaVersionsImpl.schemaVersionAtNow(SchemaVersionsImpl.java:68)
> at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:107)
> ... 75 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)