Hassan Ait Brik
03/17/2026, 1:16 PM"task": {
"taskTypeConfigsMap": {
"MergeRollupTask": {
"1day.mergeType": "concat",
"1day.bucketTimePeriod": "1d",
"1day.bufferTimePeriod": "1d",
"1day.maxNumRecordsPerSegment": "5000000",
"1day.maxNumRecordsPerTask": "50000000",
"1day.maxNumParallelBuckets": "5"
},
"PurgeTask": {
"schedule": "0 */10 * ? * *"
}
}
}
But when it runs, I get this error in the controller logs:
ERROR [PinotTaskManager] Failed to generate tasks for task type PurgeTask for table analyse_test_REALTIME
java.lang.NumberFormatException: Cannot parse null string
at java.base/java.lang.Long.parseLong(Long.java:674)
at java.base/java.lang.Long.valueOf(Long.java:1163)
at org.apache.pinot.plugin.minion.tasks.purge.PurgeTaskGenerator.generateTasks(PurgeTaskGenerator.java:121)
A few questions:
1. Is PurgeTask in Pinot 1.4.0 expected to support the “delete empty segments only” use case ?
2. Does it require additional config besides schedule?
3. Is this a known bug in PurgeTaskGenerator?
4. What is the recommended way today to automatically clean up totalDocs = 0 segments on a REALTIME non-upsert table?
Thanks !Shounak Kulkarni
03/17/2026, 1:43 PMShounak Kulkarni
03/17/2026, 1:46 PMHassan Ait Brik
03/17/2026, 1:47 PMHassan Ait Brik
03/17/2026, 1:47 PM