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: [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]