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

Vladislav Pyatkov edited comment on IGNITE-21578 at 2/27/24 10:26 PM:
----------------------------------------------------------------------

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.
We will worry only if this reproduces again in the new base (in the cluster 
pool).


was (Author: v.pyatkov):
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)

Reply via email to