"soap" tenant not compatible with S3 backend
Describe the bug Having a tenant name "soap" causes various Cortex components to talk to the S3 SOAP API rather than accessing the "soap" directory of the bucket. The "soap" S3 bucket path seems to be treated as a special case.
To Reproduce Create a tenant named soap. Observe failures whenever a component needs to interact with S3 with that tenant (e.g. ingester block uploads, bucket index scanning).
Example error
expanding series: error querying tenant_id soap: read bucket index: Last-Modified time format is invalid, failed with parsing time \\\\\\\"\\\\\\\" as \\\\\\\"Mon, 02 Jan 2006 15:04:05 GMT\\\\\\\": cannot parse \\\\\\\"\\\\\\\" as \\\\\\\"Mon\\\\\\\"\\\"}\"
Expected behavior Cortex blocks requests using this tenant ID?
Environment:
- Infrastructure: [e.g., Kubernetes, bare-metal, laptop] Kubernetes
- Deployment tool: [e.g., helm, jsonnet] in-house
Storage Engine
- [x] Blocks
- [ ] Chunks
Additional Context Seems related to this old issue reported for the JS SDK: https://github.com/aws/aws-sdk-js/issues/2302
Thanks for the report.
I wonder if this is documented by Amazon outside of a closed bug report.
Traditionally one fixes such conflicts by adding another prefix or suffix, like how all external names in C get _ at the beginning. But this just adds problems for someone who has already built up data.
I guess you’re right Cortex could error immediately on “soap”. At least that would make it easier to diagnose.
This issue has been automatically marked as stale because it has not had any activity in the past 60 days. It will be closed in 15 days if no further activity occurs. Thank you for your contributions.
I feel this just needs to be documented, there is nothing that can be done
This issue has been automatically marked as stale because it has not had any activity in the past 60 days. It will be closed in 15 days if no further activity occurs. Thank you for your contributions.