[
https://issues.apache.org/jira/browse/IGNITE-22288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denis Chudov reassigned IGNITE-22288:
-------------------------------------
Assignee: Denis Chudov
> ItTxResourcesVacuumTest may fail with NPE
> -----------------------------------------
>
> Key: IGNITE-22288
> URL: https://issues.apache.org/jira/browse/IGNITE-22288
> Project: Ignite
> Issue Type: Bug
> Reporter: Alexander Lapin
> Assignee: Denis Chudov
> Priority: Major
> Labels: ignite-3
> Time Spent: 10m
> Remaining Estimate: 0h
>
> {code:java}
> [2024-05-20T10:02:21,361][INFO ][Test worker][ItTxResourcesVacuumTest] >>>
> Stopping test:
> ItTxResourcesVacuumTest#testCommitPartitionPrimaryChangesBeforeVacuum,
> displayName: testCommitPartitionPrimaryChangesBeforeVacuum(), cost: 11523ms.
> java.lang.NullPointerException java.lang.NullPointerException
> at
> org.apache.ignite.internal.table.ItTxResourcesVacuumTest.checkValueReadOnly(ItTxResourcesVacuumTest.java:803)
> at
> org.apache.ignite.internal.table.ItTxResourcesVacuumTest.testCommitPartitionPrimaryChangesBeforeVacuum(ItTxResourcesVacuumTest.java:536)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566) {code}
> [https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8127603?hideProblemsFromDependencies=false&expandBuildDeploymentsSection=false&hideTestsFromDependencies=false&expandCode+Inspection=true&expandBuildChangesSection=true&expandBuildTestsSection=true&expandBuildProblemsSection=true]
> The reason of failure is a bug in vacuum. Persistent tx state is vacuumized
> earlier than cleanup is completed, which causes tx recovery on RO tx with
> rollback outcome for RW tx that was committed and the abort of write intent.
> Scenario: tx resource TTL is over, so we check the tx state meta (see
> VolatileTxStateMetaStorage#vacuum() ). There is commitPartId (because it's
> commit partition), and we add the tx id to collection that should be passed
> to persistent vacuumizer. Persistent vacuumizer erases the persistent state
> only if we are on the commit partition primary replica, but it doesn't check
> the presense of cleanupCompletionTimestamp, as it should. As a result, it
> erases the persistent state before cleanupCompletionTimestamp appears.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)