|
37 | 37 | import java.nio.file.attribute.FileStoreAttributeView; |
38 | 38 | import java.nio.file.spi.FileSystemProvider; |
39 | 39 | import java.util.ArrayList; |
| 40 | +import java.util.Collections; |
40 | 41 | import java.util.IdentityHashMap; |
41 | 42 | import java.util.LinkedHashSet; |
42 | 43 | import java.util.List; |
@@ -898,8 +899,8 @@ public void testEnqueuedMergeTasksAreUnblockedWhenEstimatedMergeSizeChanges() th |
898 | 899 | assertBusy( |
899 | 900 | () -> assertThat(threadPoolMergeExecutorService.getDiskSpaceAvailableForNewMergeTasks(), is(expectedAvailableBudget.get())) |
900 | 901 | ); |
901 | | - List<ThreadPoolMergeScheduler.MergeTask> tasksRunList = new ArrayList<>(); |
902 | | - List<ThreadPoolMergeScheduler.MergeTask> tasksAbortList = new ArrayList<>(); |
| 902 | + List<ThreadPoolMergeScheduler.MergeTask> tasksRunList = Collections.synchronizedList(new ArrayList<>()); |
| 903 | + List<ThreadPoolMergeScheduler.MergeTask> tasksAbortList = Collections.synchronizedList(new ArrayList<>()); |
903 | 904 | int submittedMergesCount = randomIntBetween(1, 5); |
904 | 905 | long[] mergeSizeEstimates = new long[submittedMergesCount]; |
905 | 906 | for (int i = 0; i < submittedMergesCount; i++) { |
@@ -954,13 +955,17 @@ public void testEnqueuedMergeTasksAreUnblockedWhenEstimatedMergeSizeChanges() th |
954 | 955 | }); |
955 | 956 | // assert all merge tasks are either run or aborted |
956 | 957 | assertBusy(() -> { |
957 | | - for (ThreadPoolMergeScheduler.MergeTask mergeTask : tasksRunList) { |
958 | | - verify(mergeTask, times(1)).run(); |
959 | | - verify(mergeTask, times(0)).abort(); |
| 958 | + synchronized (tasksRunList) { |
| 959 | + for (ThreadPoolMergeScheduler.MergeTask mergeTask : tasksRunList) { |
| 960 | + verify(mergeTask, times(1)).run(); |
| 961 | + verify(mergeTask, times(0)).abort(); |
| 962 | + } |
960 | 963 | } |
961 | | - for (ThreadPoolMergeScheduler.MergeTask mergeTask : tasksAbortList) { |
962 | | - verify(mergeTask, times(0)).run(); |
963 | | - verify(mergeTask, times(1)).abort(); |
| 964 | + synchronized (tasksAbortList) { |
| 965 | + for (ThreadPoolMergeScheduler.MergeTask mergeTask : tasksAbortList) { |
| 966 | + verify(mergeTask, times(0)).run(); |
| 967 | + verify(mergeTask, times(1)).abort(); |
| 968 | + } |
964 | 969 | } |
965 | 970 | }); |
966 | 971 | } |
|
0 commit comments