[ https://issues.apache.org/jira/browse/IGNITE-21578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Lapin updated IGNITE-21578: ------------------------------------- Reviewer: Alexander Lapin (was: Vladislav Pyatkov) > 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: Kirill Sizov > Priority: Major > Labels: ignite-3 > Time Spent: 20m > 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)