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]