[ 
https://issues.apache.org/jira/browse/IGNITE-21172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-21172:
------------------------------------
    Labels: ignite-3  (was: )

> 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
>            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)

Reply via email to