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: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to