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)