tibrewalpratik17 opened a new pull request, #11931:
URL: https://github.com/apache/pinot/pull/11931

   We should not allow partial-upsert tables to be created without a default 
partial-upsert-strategy. Adding a check during table-creation to take care of 
this scenario.
   
   Without default-partial-upsert strategy, we get the following NPE after the 
table is created:
   
   ```
   java.lang.NullPointerException: null
        at 
org.apache.pinot.segment.local.upsert.merger.PartialUpsertMergerFactory.getMerger(PartialUpsertMergerFactory.java:37)
        at 
org.apache.pinot.segment.local.upsert.PartialUpsertHandler.<init>(PartialUpsertHandler.java:43)
        at 
org.apache.pinot.segment.local.upsert.BaseTableUpsertMetadataManager.init(BaseTableUpsertMetadataManager.java:70)
        at 
org.apache.pinot.segment.local.upsert.TableUpsertMetadataManagerFactory.create(TableUpsertMetadataManagerFactory.java:62)
        at 
org.apache.pinot.core.data.manager.realtime.RealtimeTableDataManager.doInit(RealtimeTableDataManager.java:195)
        at 
org.apache.pinot.core.data.manager.BaseTableDataManager.init(BaseTableDataManager.java:165)
        at 
org.apache.pinot.core.data.manager.offline.TableDataManagerProvider.getTableDataManager(TableDataManagerProvider.java:72)
        at 
org.apache.pinot.server.starter.helix.HelixInstanceDataManager.createTableDataManager(HelixInstanceDataManager.java:260)
        at 
org.apache.pinot.server.starter.helix.HelixInstanceDataManager.lambda$addRealtimeSegment$2(HelixInstanceDataManager.java:220)
        at 
java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
        at 
org.apache.pinot.server.starter.helix.HelixInstanceDataManager.addRealtimeSegment(HelixInstanceDataManager.java:220)
        at 
org.apache.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeOnlineFromOffline(SegmentOnlineOfflineStateModelFactory.java:161)
        at 
org.apache.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeConsumingFromOffline(SegmentOnlineOfflineStateModelFactory.java:83)
   ```
   
   Table config was:
   ```
   "upsertConfig": {
         "mode": "PARTIAL",
         "hashFunction": "NONE",
         "partialUpsertStrategies": {},
         "enableSnapshot": false
       },
   ```


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