You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Kirill Tkalenko (Jira)" <ji...@apache.org> on 2023/03/30 10:11:00 UTC

[jira] [Created] (IGNITE-19169) Deadlock detected while calling MvPartitionStorage#pollForVacuum

Kirill Tkalenko created IGNITE-19169:
----------------------------------------

             Summary: Deadlock detected while calling MvPartitionStorage#pollForVacuum
                 Key: IGNITE-19169
                 URL: https://issues.apache.org/jira/browse/IGNITE-19169
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 3.0.0-beta2
            Reporter: Kirill Tkalenko
             Fix For: 3.0.0-beta2


Deadlock detected while calling *org.apache.ignite.internal.storage.MvPartitionStorage#pollForVacuum*, reproducer:
{code:java}
// Some comments here
@Test
public void testDeadLock() {
    RowId rowId2 = new RowId(PARTITION_ID);
    for (int i = 0; i < REPEATS; i++) {
        addWriteCommitted(ROW_ID, TABLE_ROW, clock.now());
        addWriteCommitted(rowId2, TABLE_ROW2, clock.now());
        addWriteCommitted(ROW_ID, TABLE_ROW, clock.now());
        addWriteCommitted(rowId2, TABLE_ROW2, clock.now());
        addWriteCommitted(ROW_ID, null, clock.now());
        addWriteCommitted(rowId2, null, clock.now());

        RunnableX remove2rowsAction = () -> {
            storage.runConsistently(() -> {
                storage.pollForVacuum(HybridTimestamp.MAX_VALUE);
                storage.pollForVacuum(HybridTimestamp.MAX_VALUE);
                return null;
            });
        };

        runRace(remove2rowsAction, remove2rowsAction);
        assertNull(storage.closestRowId(RowId.lowestRowId(PARTITION_ID)));
    }
}
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)