You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Chudov (Jira)" <ji...@apache.org> on 2024/05/24 12:47:00 UTC
[jira] [Assigned] (IGNITE-22288) ItTxResourcesVacuumTest may fail with NPE
[ 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)