diff --git a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/TaskLockbox.java b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/TaskLockbox.java index ca4d4526557b..9a2f78542212 100644 --- a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/TaskLockbox.java +++ b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/TaskLockbox.java @@ -201,7 +201,6 @@ public int compare(Pair left, Pair right) task.getId(), task.getGroupId() ); - continue; } } @@ -237,6 +236,7 @@ public int compare(Pair left, Pair right) * groupId, dataSource, and priority. */ @VisibleForTesting + @Nullable protected TaskLockPosse verifyAndCreateOrFindLockPosse(Task task, TaskLock taskLock) { giant.lock(); @@ -297,6 +297,12 @@ protected TaskLockPosse verifyAndCreateOrFindLockPosse(Task task, TaskLock taskL return createOrFindLockPosse(request); } + catch (Exception e) { + log.error(e, + "Could not reacquire lock for task: %s from metadata store", task.getId() + ); + return null; + } finally { giant.unlock(); } diff --git a/indexing-service/src/test/java/org/apache/druid/indexing/overlord/TaskLockboxTest.java b/indexing-service/src/test/java/org/apache/druid/indexing/overlord/TaskLockboxTest.java index 908e554a465e..fd93aff2ba79 100644 --- a/indexing-service/src/test/java/org/apache/druid/indexing/overlord/TaskLockboxTest.java +++ b/indexing-service/src/test/java/org/apache/druid/indexing/overlord/TaskLockboxTest.java @@ -449,9 +449,9 @@ public void testSyncFromStorageWithInvalidPriority() throws EntryExistsException ); final TaskLockbox lockbox = new TaskLockbox(taskStorage, metadataStorageCoordinator); - expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("lock priority[10] is different from task priority[50]"); - lockbox.syncFromStorage(); + TaskLockboxSyncResult result = lockbox.syncFromStorage(); + Assert.assertEquals(1, result.getTasksToFail().size()); + Assert.assertTrue(result.getTasksToFail().contains(task)); } @Test