When a segment file fails to be uploaded to the de...
# troubleshooting
g
When a segment file fails to be uploaded to the deep store (here: https://github.com/apache/pinot/blob/30c4635bfeee88f88aa9c9f63b93bcd4a650607f/pino[…]he/pinot/core/data/manager/realtime/PinotFSSegmentUploader.java), the tar.gz file gets removed. Does this segment ever get retried? I do have
controller.realtime.segment.deepStoreUploadRetryEnabled=true
but have not seen it happen. This is a controller setting, but it’s the server doing the upload.
m
The retry is/should-be on the build and push side that is uploading, iirc.
g
on the build and push side
what does that mean?
m
Sorry, should have not assumed, is this realtime or offline?
g
realtime
m
Ok, my comment assumed offline. Looking at the code, I don’t see a retry. Do you know why the push failed in your case?
g
something timed out, but anything can happen with external systems. For what situations is
controller.realtime.segment.deepStoreUploadRetryEnabled
being used?
m
Ok, looking at the code, the retry is not immediate. But the retry happens with the periodic segment validation task.
Also, there is an api (in swagger) to trigger this periodic task manually. You can try that to see if that does the retry.
g
Ah thanks I’ll try that. How often does this run automatically?
m
It is configurable, and defaults to 1hr.
g
I looked at http://pinot-controller:9000/help#/Task/listTaskTypes but it returns an empty list. How do I find out what task I can trigger manually?
m
There is also an api in Swagger that returns those:
Copy code
[
  "RetentionManager",
  "OfflineSegmentIntervalChecker",
  "RealtimeSegmentValidationManager",
  "BrokerResourceValidationManager",
  "SegmentStatusChecker",
  "SegmentRelocator",
  "MinionInstancesCleanupTask",
  "TaskMetricsEmitter"
]
g
I tried
Task/listTaskTypes
but that returns an empty list
m
/periodictask/names
in Swagger
g
ooh! Many thanks!
🙏 1