raghavyadav01 commented on code in PR #19053:
URL: https://github.com/apache/pinot/pull/19053#discussion_r3670409681


##########
pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java:
##########
@@ -1248,6 +1248,10 @@ public SegmentDataManager registerSegment(String 
segmentName, SegmentDataManager
       oldSegmentDataManager = _segmentDataManagerMap.put(segmentName, 
segmentDataManager);
     }
     _recentlyDeletedSegments.invalidate(segmentName);
+    // Fire the post-registration lifecycle hook now that the segment is 
swapped into the serving set
+    for (IndexSegment segment : segmentDataManager.getReportableSegments()) {
+      segment.onSegmentAdded();

Review Comment:
   `getReportableSegments()` defaults to `List.of(getSegment())`, and 
`List.of(...)` throws NPE on a null element. Since this loop isn't wrapped in 
try/catch, a manager whose `getSegment()` returns null would now abort 
registration where it previously wouldn't. All current implementations return 
non-null so there's no live bug, but should we guard against null here (skip 
nulls / wrap the loop) to avoid a new failure surface for custom managers?



-- 
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