ajeydudhe opened a new issue, #14067:
URL: https://github.com/apache/pinot/issues/14067
### Steps to reproduce
- Define REALTIME table schema and table config using Pinot **_1.2.0_**
- In the table config, make sure the **_upsertConfig_** has
**_enableSnapshot = true_** and **_enablePreload = true_** as below:
```json
"upsertConfig": {
"mode": "FULL",
"comparisonColumns": ["someField"],
"partialUpsertStrategies": {},
"deleteRecordColumn": "isDeleted",
"deletedKeysTTL": 86400000,
"enableSnapshot": true,
"enablePreload": true
}
```
- Load some records using Kafka and check that data is visible and all
segments are GOOD.
- Now, pause the Kafka consumption using following command:
```shell
curl --location --request POST
'http://localhost:9000/tables/myTable/pauseConsumption'
```
- Make sure consumption is paused using following command:
```shell
curl --location 'http://localhost:9000/tables/myTable/pauseStatus'
```
- Resume the consumption using following command:
```shell
curl --location --request POST
'http://localhost:9000/tables/myTable/resumeConsumption'
```
- Now, check the segment status.
- All the older segments are marked BAD and new consuming ones as GOOD.
- The server logs has following error for segments failing to load:
```
2024-09-24 13:21:19 Caused by: java.lang.IllegalStateException: Snapshot of
validDocIds is required to preload segment: myTable__0__0__20240924T0750Z,
table: myTable_REALTIME
```
### Note
- Same POC runs properly without any errors on Pinot **_1.1.0_**
- Issue occurs only when using **_upsertConfig.enableSnapshot = true_** and
**_upsertConfig.enablePreload = true_**
### Exception
```
2024-09-24 13:21:19 2024/09/24 07:51:19.021 ERROR
[HelixStateTransitionHandler] [HelixTaskExecutor-message_handle_thread_10]
Exception while executing a state transition task myTable__0__0__20240924T0750Z
2024-09-24 13:21:19 java.lang.reflect.InvocationTargetException: null
2024-09-24 13:21:19 at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:?]
2024-09-24 13:21:19 at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
~[?:?]
2024-09-24 13:21:19 at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
2024-09-24 13:21:19 at
java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
2024-09-24 13:21:19 at
org.apache.helix.messaging.handling.HelixStateTransitionHandler.invoke(HelixStateTransitionHandler.java:350)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.helix.messaging.handling.HelixStateTransitionHandler.handleMessage(HelixStateTransitionHandler.java:278)
[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:97)
[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:49)
[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
2024-09-24 13:21:19 at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[?:?]
2024-09-24 13:21:19 at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[?:?]
2024-09-24 13:21:19 at java.base/java.lang.Thread.run(Thread.java:840)
[?:?]
2024-09-24 13:21:19 Caused by: java.lang.IllegalStateException: Snapshot of
validDocIds is required to preload segment: myTable__0__0__20240924T0750Z,
table: myTable_REALTIME
2024-09-24 13:21:19 at
org.apache.pinot.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:838)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.segment.local.upsert.BasePartitionUpsertMetadataManager.doPreloadSegment(BasePartitionUpsertMetadataManager.java:513)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.segment.local.upsert.BasePartitionUpsertMetadataManager.preloadSegment(BasePartitionUpsertMetadataManager.java:498)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.realtime.RealtimeTableDataManager.handleUpsert(RealtimeTableDataManager.java:585)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.realtime.RealtimeTableDataManager.addSegment(RealtimeTableDataManager.java:541)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.realtime.RealtimeTableDataManager.downloadAndReplaceConsumingSegment(RealtimeTableDataManager.java:628)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.realtime.RealtimeSegmentDataManager.downloadSegmentAndReplace(RealtimeSegmentDataManager.java:1351)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.realtime.RealtimeSegmentDataManager.goOnlineFromConsuming(RealtimeSegmentDataManager.java:1290)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.realtime.RealtimeTableDataManager.doAddOnlineSegment(RealtimeTableDataManager.java:421)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.core.data.manager.BaseTableDataManager.addOnlineSegment(BaseTableDataManager.java:313)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.server.starter.helix.HelixInstanceDataManager.addOnlineSegment(HelixInstanceDataManager.java:275)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 at
org.apache.pinot.server.starter.helix.SegmentOnlineOfflineStateModelFactory$SegmentOnlineOfflineStateModel.onBecomeOnlineFromConsuming(SegmentOnlineOfflineStateModelFactory.java:88)
~[pinot-all-1.2.0-jar-with-dependencies.jar:1.2.0-cc33ac502a02e2fe830fe21e556234ee99351a7a]
2024-09-24 13:21:19 ... 12 more
```
--
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]