github-advanced-security[bot] commented on code in PR #15710:
URL: https://github.com/apache/druid/pull/15710#discussion_r1456450388


##########
server/src/main/java/org/apache/druid/server/coordinator/duty/KillUnusedSegments.java:
##########
@@ -191,38 +207,43 @@
     if (0 < availableKillTaskSlots && 
!CollectionUtils.isNullOrEmpty(dataSourcesToKill)) {
       for (String dataSource : dataSourcesToKill) {
         if (submittedTasks >= availableKillTaskSlots) {
-          log.debug(StringUtils.format(
+          log.info(StringUtils.format(
               "Submitted [%d] kill tasks and reached kill task slot limit 
[%d]. Will resume "
               + "on the next coordinator cycle.", submittedTasks, 
availableKillTaskSlots));
           break;
         }
-        final Interval intervalToKill = findIntervalForKill(dataSource);
+        final DateTime maxUsedFlagLastUpdatedTime = 
DateTimes.nowUtc().minus(bufferPeriod);
+        final Interval intervalToKill = findIntervalForKill(dataSource, 
maxUsedFlagLastUpdatedTime);
         if (intervalToKill == null) {
           datasourceToLastKillIntervalEnd.remove(dataSource);
           continue;
         }
 
         try {
-          FutureUtils.getUnchecked(overlordClient.runKillTask(
-              TASK_ID_PREFIX,
-              dataSource,
-              intervalToKill,
-              maxSegmentsToKill
-          ), true);
+          FutureUtils.getUnchecked(
+              overlordClient.runKillTask(
+                  TASK_ID_PREFIX,
+                  dataSource,
+                  intervalToKill,
+                  maxSegmentsToKill,
+                  maxUsedFlagLastUpdatedTime
+              ),
+              true
+          );
           ++submittedTasks;
           datasourceToLastKillIntervalEnd.put(dataSource, 
intervalToKill.getEnd());
         }
         catch (Exception ex) {
-          log.error(ex, "Failed to submit kill task for dataSource [%s]", 
dataSource);
+          log.error(ex, "Failed to submit kill task for dataSource[%s] in 
interval[%s]", dataSource);

Review Comment:
   ## Missing format argument
   
   This format call refers to 2 argument(s) but only supplies 1 argument(s).
   
   [Show more 
details](https://github.com/apache/druid/security/code-scanning/6468)



##########
indexing-service/src/test/java/org/apache/druid/indexing/common/task/ClientKillUnusedSegmentsTaskQuerySerdeTest.java:
##########
@@ -110,5 +115,33 @@
     Assert.assertEquals(task.isMarkAsUnused(), taskQuery.getMarkAsUnused());
     Assert.assertEquals(Integer.valueOf(task.getBatchSize()), 
taskQuery.getBatchSize());
     Assert.assertNull(task.getLimit());
+    Assert.assertNull(task.getMaxUsedFlagLastUpdatedTime());
+  }
+
+  @Test
+  public void 
testKillUnusedSegmentsTaskWithNonNullValuesToClientKillUnusedSegmentsTaskQuery()
 throws IOException
+  {
+    final KillUnusedSegmentsTask task = new KillUnusedSegmentsTask(
+        null,
+        "datasource",
+        Intervals.of("2020-01-01/P1D"),
+        null,
+        null,
+        99,
+        100,
+        DateTimes.nowUtc()
+    );
+    final byte[] json = objectMapper.writeValueAsBytes(task);
+    final ClientKillUnusedSegmentsTaskQuery taskQuery = 
(ClientKillUnusedSegmentsTaskQuery) objectMapper.readValue(
+        json,
+        ClientTaskQuery.class
+    );
+    Assert.assertEquals(task.getId(), taskQuery.getId());
+    Assert.assertEquals(task.getDataSource(), taskQuery.getDataSource());
+    Assert.assertEquals(task.getInterval(), taskQuery.getInterval());
+    Assert.assertNull(taskQuery.getMarkAsUnused());

Review Comment:
   ## Deprecated method or constructor invocation
   
   Invoking [ClientKillUnusedSegmentsTaskQuery.getMarkAsUnused](1) should be 
avoided because it has been deprecated.
   
   [Show more 
details](https://github.com/apache/druid/security/code-scanning/6467)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to