klsince commented on code in PR #9309:
URL: https://github.com/apache/pinot/pull/9309#discussion_r1018496195
##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeSegmentAssignment.java:
##########
@@ -182,9 +185,21 @@ public Map<String, Map<String, String>>
rebalanceTable(Map<String, Map<String, S
boolean bootstrap =
config.getBoolean(RebalanceConfigConstants.BOOTSTRAP,
RebalanceConfigConstants.DEFAULT_BOOTSTRAP);
+ // TODO: remove this check after we also refactor consuming segments
assignment strategy
+ // See https://github.com/apache/pinot/issues/9047
+ SegmentAssignmentStrategy segmentAssignmentStrategy = null;
+ if (completedInstancePartitions != null) {
Review Comment:
hi @GSharayu , I'm testing locally with RealtimeQuickStart customized a
little bit, and I came into NPE issue like below. Basically, in my local test
setup, the tableConfig of airlineStats_`REALTIME` has some tierConfigs; and
SegmentRelocator is enabled to run periodically to move segments around based
on data age as set in tierConfigs.
As suggested above, I feel it'd be safer to init segmentAssignmentStrategy
with a default policy.
```
2022/11/09 14:43:09.474 INFO [RealtimeSegmentAssignment]
[async-task-thread-1] Rebalancing tier: myTier for table: airlineStats_REALTIME
with bootstrap: false, instance partitions:
{"instancePartitionsName":"airlineStats
_myTier","partitionToInstancesMap":{"0_0":["Server_192.168.0.106_7000"]}}
2022/11/09 14:43:09.475 WARN [TableRebalancer] [async-task-thread-1] Caught
exception while calculating target assignment for table: airlineStats_REALTIME,
aborting the rebalance
java.lang.NullPointerException: null
at
org.apache.pinot.controller.helix.core.assignment.segment.BaseSegmentAssignment.reassignSegments(BaseSegmentAssignment.java:158)
~[classes/:?]
at
org.apache.pinot.controller.helix.core.assignment.segment.BaseSegmentAssignment.rebalanceTiers(BaseSegmentAssignment.java:129)
~[classes/:?]
at
org.apache.pinot.controller.helix.core.assignment.segment.RealtimeSegmentAssignment.rebalanceTable(RealtimeSegmentAssignment.java:201)
~[classes/:?]
at
org.apache.pinot.controller.helix.core.rebalance.TableRebalancer.rebalance(TableRebalancer.java:219)
~[classes/:?]
at
org.apache.pinot.controller.helix.core.relocation.SegmentRelocator.lambda$processTable$0(SegmentRelocator.java:137)
~[classes/:?]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[?:?]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
```
cc @npawar for awareness ^
--
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]