You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladislav Pyatkov (Jira)" <ji...@apache.org> on 2024/02/27 22:25:00 UTC

[jira] [Commented] (IGNITE-21578) ItDurableFinishTest#testWaitForCleanup failed with NPE

    [ https://issues.apache.org/jira/browse/IGNITE-21578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17821438#comment-17821438 ] 

Vladislav Pyatkov commented on IGNITE-21578:
--------------------------------------------

Likly, we do not have to look at the error because the exception occurs in the thread pool (the pool is ForkJoinPool.commonPool) whose lifecycle is different from the cluster. Currently, we use another pool.
At least because the test does not have a full operation. Probably this invocation is an inheritance from any previous test.

>  ItDurableFinishTest#testWaitForCleanup failed with NPE
> -------------------------------------------------------
>
>                 Key: IGNITE-21578
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21578
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexander Lapin
>            Assignee: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> [https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/7870395?expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildProblemsSection=true&expandCode+Inspection=true&expandBuildChangesSection=true]
> {code:java}
>   Caused by: java.lang.NullPointerException
>     at org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$finishFull$3(TxManagerImpl.java:472) ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at org.apache.ignite.internal.tx.impl.VolatileTxStateMetaStorage.lambda$updateMeta$0(VolatileTxStateMetaStorage.java:73) ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908) ~[?:?]
>     at org.apache.ignite.internal.tx.impl.VolatileTxStateMetaStorage.updateMeta(VolatileTxStateMetaStorage.java:72) ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at org.apache.ignite.internal.tx.impl.TxManagerImpl.updateTxMeta(TxManagerImpl.java:455) ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at org.apache.ignite.internal.tx.impl.TxManagerImpl.finishFull(TxManagerImpl.java:472) ~[ignite-transactions-3.0.0-SNAPSHOT.jar:?]
>     at org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$13(InternalTableImpl.java:593) ~[ignite-table-3.0.0-SNAPSHOT.jar:?] {code}
> Seems that the reason is that old meta may be null in case of exception
> {code:java}
>     public void finishFull(HybridTimestampTracker timestampTracker, UUID txId, boolean commit) {
>         ...
>         updateTxMeta(txId, old -> new TxStateMeta(finalState, old.txCoordinatorId(), old.commitPartitionId(), old.commitTimestamp()));
>         ...
>     }
> {code}
> {code:java}
>         return fut.handle((BiFunction<T, Throwable, CompletableFuture<T>>) (r, e) -> {
>             if (full) { // Full txn is already finished remotely. Just update local state.
>                 txManager.finishFull(observableTimestampTracker, tx0.id(), e == null);{code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)