Skip to content

Commit d2cb21f

Browse files
authored
fix: remove circuit-break on failed worker transaction to allow replicate abortion (#767)
1 parent c1e6ec3 commit d2cb21f

File tree

2 files changed

+1
-52
lines changed

2 files changed

+1
-52
lines changed

src/main/java/com/iexec/core/replicate/listener/ReplicateListeners.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.iexec.common.replicate.ReplicateStatusUpdate;
2222
import com.iexec.core.detector.replicate.ContributionUnnotifiedDetector;
2323
import com.iexec.core.replicate.ReplicateUpdatedEvent;
24-
import com.iexec.core.replicate.ReplicatesService;
2524
import com.iexec.core.task.update.TaskUpdateRequestManager;
2625
import com.iexec.core.worker.WorkerService;
2726
import lombok.extern.slf4j.Slf4j;
@@ -40,16 +39,13 @@ public class ReplicateListeners {
4039
private final TaskUpdateRequestManager taskUpdateRequestManager;
4140
private final WorkerService workerService;
4241
private final ContributionUnnotifiedDetector contributionUnnotifiedDetector;
43-
private final ReplicatesService replicatesService;
4442

4543
public ReplicateListeners(final WorkerService workerService,
4644
final TaskUpdateRequestManager taskUpdateRequestManager,
47-
final ContributionUnnotifiedDetector contributionUnnotifiedDetector,
48-
final ReplicatesService replicatesService) {
45+
final ContributionUnnotifiedDetector contributionUnnotifiedDetector) {
4946
this.workerService = workerService;
5047
this.taskUpdateRequestManager = taskUpdateRequestManager;
5148
this.contributionUnnotifiedDetector = contributionUnnotifiedDetector;
52-
this.replicatesService = replicatesService;
5349
}
5450

5551
@EventListener
@@ -92,14 +88,6 @@ public void onReplicateUpdatedEvent(final ReplicateUpdatedEvent event) {
9288
contributionUnnotifiedDetector.detectOnchainDone();
9389
}
9490

95-
/*
96-
* Should add FAILED status if not completable
97-
*/
98-
if (ReplicateStatus.getUncompletableStatuses().contains(newStatus)) {
99-
replicatesService.updateReplicateStatus(event.getChainTaskId(),
100-
event.getWalletAddress(), ReplicateStatusUpdate.poolManagerRequest(FAILED));
101-
}
102-
10391
/*
10492
* Should release given worker for this replicate if status is COMPLETED or FAILED
10593
*/

src/test/java/com/iexec/core/replicate/listener/ReplicateListenersTests.java

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,20 @@
2020
import com.iexec.common.replicate.ReplicateStatusUpdate;
2121
import com.iexec.core.detector.replicate.ContributionUnnotifiedDetector;
2222
import com.iexec.core.replicate.ReplicateUpdatedEvent;
23-
import com.iexec.core.replicate.ReplicatesService;
2423
import com.iexec.core.task.update.TaskUpdateRequestManager;
2524
import com.iexec.core.worker.WorkerService;
2625
import org.junit.jupiter.api.Test;
2726
import org.junit.jupiter.api.extension.ExtendWith;
28-
import org.junit.jupiter.params.ParameterizedTest;
29-
import org.junit.jupiter.params.provider.MethodSource;
30-
import org.mockito.ArgumentCaptor;
3127
import org.mockito.InjectMocks;
3228
import org.mockito.Mock;
3329
import org.mockito.junit.jupiter.MockitoExtension;
3430

3531
import java.util.Arrays;
3632
import java.util.List;
37-
import java.util.function.Predicate;
38-
import java.util.stream.Stream;
3933

4034
import static com.iexec.common.replicate.ReplicateStatus.*;
4135
import static com.iexec.common.replicate.ReplicateStatusCause.TASK_NOT_ACTIVE;
42-
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
4336
import static org.mockito.ArgumentMatchers.any;
44-
import static org.mockito.ArgumentMatchers.eq;
4537
import static org.mockito.Mockito.*;
4638

4739
@ExtendWith(MockitoExtension.class)
@@ -55,8 +47,6 @@ class ReplicateListenersTests {
5547
@Mock
5648
private ContributionUnnotifiedDetector contributionUnnotifiedDetector;
5749
@Mock
58-
private ReplicatesService replicatesService;
59-
@Mock
6050
private TaskUpdateRequestManager taskUpdateRequestManager;
6151
@InjectMocks
6252
private ReplicateListeners replicateListeners;
@@ -154,35 +144,6 @@ void shouldNotTriggerDetectOnchainContributedSinceCauseIsNull() {
154144
verifyNoInteractions(contributionUnnotifiedDetector);
155145
}
156146

157-
static Stream<ReplicateStatus> getUncompletableStatuses() {
158-
return ReplicateStatus.getUncompletableStatuses().stream();
159-
}
160-
161-
@ParameterizedTest
162-
@MethodSource("getUncompletableStatuses")
163-
void shouldAddFailedStatusSinceUncompletableReplicateStatus(final ReplicateStatus uncompletableStatus) {
164-
final ReplicateUpdatedEvent replicateUpdatedEvent = getMockReplicate(uncompletableStatus);
165-
replicateListeners.onReplicateUpdatedEvent(replicateUpdatedEvent);
166-
167-
final ArgumentCaptor<ReplicateStatusUpdate> statusUpdate = ArgumentCaptor.forClass(ReplicateStatusUpdate.class);
168-
verify(replicatesService).updateReplicateStatus(eq(CHAIN_TASK_ID), eq(WORKER_WALLET), statusUpdate.capture());
169-
assertThat(statusUpdate.getValue().getStatus()).isEqualTo(FAILED);
170-
}
171-
172-
static Stream<ReplicateStatus> getCompletableStatuses() {
173-
return Arrays.stream(values())
174-
.filter(Predicate.not(ReplicateStatus.getUncompletableStatuses()::contains));
175-
}
176-
177-
@ParameterizedTest
178-
@MethodSource("getCompletableStatuses")
179-
void shouldNotAddFailedStatusSinceCompletableReplicateStatus(final ReplicateStatus completableStatus) {
180-
final ReplicateUpdatedEvent replicateUpdatedEvent = getMockReplicate(completableStatus);
181-
replicateListeners.onReplicateUpdatedEvent(replicateUpdatedEvent);
182-
183-
verifyNoInteractions(replicatesService);
184-
}
185-
186147
@Test
187148
void shouldRemoveChainTaskIdFromWorkerSinceCompleted() {
188149
final ReplicateUpdatedEvent replicateUpdatedEvent = getMockReplicate(COMPLETED);

0 commit comments

Comments
 (0)