@@ -195,10 +195,6 @@ private DataTable processQueryInternal(ServerQueryRequest queryRequest, Executor
195195 List <String > unAcquiredSegments = new ArrayList <>();
196196 List <SegmentDataManager > segmentDataManagers = tableDataManager .acquireSegments (
197197 segmentsToQuery , unAcquiredSegments );
198- List <String > missingSegments =
199- unAcquiredSegments .stream ()
200- .filter (segmentName -> !tableDataManager .isSegmentDeletedRecently (segmentName ))
201- .collect (Collectors .toList ());
202198 int numSegmentsAcquired = segmentDataManagers .size ();
203199 List <IndexSegment > indexSegments = new ArrayList <>(numSegmentsAcquired );
204200 for (SegmentDataManager segmentDataManager : segmentDataManagers ) {
@@ -297,12 +293,18 @@ private DataTable processQueryInternal(ServerQueryRequest queryRequest, Executor
297293 //
298294 // After step 2 but before step 4, segment will be missing on server side
299295 // TODO: Change broker to watch both IdealState and ExternalView to not query the removed segments
300- int numMissingSegments = missingSegments .size ();
301- if (numMissingSegments != 0 ) {
302- dataTable .addException (QueryException .getException (QueryException .SERVER_SEGMENT_MISSING_ERROR ,
303- String .format ("%d segments %s missing on server: %s" , numMissingSegments , missingSegments ,
304- _instanceDataManager .getInstanceId ())));
305- _serverMetrics .addMeteredTableValue (tableNameWithType , ServerMeter .NUM_MISSING_SEGMENTS , numMissingSegments );
296+ if (unAcquiredSegments .size () > 0 ) {
297+ List <String > missingSegments =
298+ unAcquiredSegments .stream ()
299+ .filter (segmentName -> !tableDataManager .isSegmentDeletedRecently (segmentName ))
300+ .collect (Collectors .toList ());
301+ int numMissingSegments = missingSegments .size ();
302+ if (numMissingSegments > 0 ) {
303+ dataTable .addException (QueryException .getException (QueryException .SERVER_SEGMENT_MISSING_ERROR ,
304+ String .format ("%d segments %s missing on server: %s" , numMissingSegments , missingSegments ,
305+ _instanceDataManager .getInstanceId ())));
306+ _serverMetrics .addMeteredTableValue (tableNameWithType , ServerMeter .NUM_MISSING_SEGMENTS , numMissingSegments );
307+ }
306308 }
307309
308310 if (tableDataManager instanceof RealtimeTableDataManager ) {
0 commit comments