From 914046ae469a43ef0ec5940ac9fa6b0eda3707b2 Mon Sep 17 00:00:00 2001 From: Bereng Date: Mon, 10 Feb 2025 09:52:32 +0100 Subject: [PATCH] Long running repairs autofail prematurely patch by Berenguer Blasi; reviewed by Bernardo Botella Corbi, Michael Semb Wever for CASSANDRA-20312 --- .../org/apache/cassandra/repair/consistent/LocalSessions.java | 1 + .../apache/cassandra/repair/consistent/LocalSessionTest.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java b/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java index d527c962bf..dd60ad4a21 100644 --- a/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java +++ b/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java @@ -1021,6 +1021,7 @@ public class LocalSessions } else { + session.setLastUpdate(); logger.debug("Received StatusResponse for repair session {} with state {}, which is not actionable. Doing nothing.", sessionID, response.state); } } diff --git a/test/unit/org/apache/cassandra/repair/consistent/LocalSessionTest.java b/test/unit/org/apache/cassandra/repair/consistent/LocalSessionTest.java index 2f8dae6a1d..1003681414 100644 --- a/test/unit/org/apache/cassandra/repair/consistent/LocalSessionTest.java +++ b/test/unit/org/apache/cassandra/repair/consistent/LocalSessionTest.java @@ -683,8 +683,11 @@ public class LocalSessionTest extends AbstractRepairTest sessions.start(); LocalSession session = sessions.prepareForTest(sessionID); session.setState(REPAIRING); + int lastUpdatedOriginal = session.getLastUpdate(); + Thread.sleep(1100); sessions.handleStatusResponse(PARTICIPANT1, new StatusResponse(sessionID, FINALIZE_PROMISED)); + Assert.assertNotEquals(lastUpdatedOriginal, session.getLastUpdate()); Assert.assertEquals(REPAIRING, session.getState()); }