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:12:00 UTC
[jira] [Assigned] (IGNITE-19169) Deadlock detected while calling MvPartitionStorage#pollForVacuum
[ https://issues.apache.org/jira/browse/IGNITE-19169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kirill Tkalenko reassigned IGNITE-19169:
----------------------------------------
Assignee: Kirill Tkalenko
> 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
> Assignee: Kirill Tkalenko
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Deadlock detected while calling *org.apache.ignite.internal.storage.MvPartitionStorage#pollForVacuum*, reproducer:
> {code:java}
> @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)