You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Lapin (Jira)" <ji...@apache.org> on 2024/03/14 11:01: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=17827052#comment-17827052 ]
Alexander Lapin commented on IGNITE-21578:
------------------------------------------
[~ksizov] LGTM.
> 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)