nomiero opened a new issue, #654:
URL: https://github.com/apache/arrow-rs-object-store/issues/654
**Describe the bug**
We saw this error while using SlateDB with `rustfs` as the object store.
```
ObjectStoreError(Generic { store: \"S3\", source: Generic { store: \"S3\",
source: RetryError(RetryErrorImpl { method: GET, uri:
Some(http://rustfs:9000/cider-data/slatedb/compactions/00000000000000000003.compactions),
retries: 1, max_retries: 10, elapsed: 37.399360833s, retry_timeout: 180s,
inner: Status { status: 400, body: Some(\"<?xml version=\\\"1.0\\\"
encoding=\\\"UTF-8\\\"?><Error><Code>InvalidArgument</Code><Message>invalid
header: range: "bytes=42-41"</Message></Error>\") } }) } }
```
Per my understanding from reading the code, this seems to happen because the
last chunk of the stream that indicates end of stream was not received and then
a retry was issued, which goes through
[this](https://github.com/apache/arrow-rs-object-store/blob/main/src/util.rs#L277)
and reduces the end bound which results in the invalid range (Not fully
confident of this tracing).
I'm wondering if a fix can be done during retry where a check if the entire
range is downloaded, then no need to retry and it can just exist with success.
**To Reproduce**
Can't easily reproduce this as it seems to not happen frequently.
**Expected behavior**
Instead of failing with 400 although the range is fully downloaded, it
should just return success.
**Additional context**
Some related issues have been reported in SlateDB
https://github.com/slatedb/slatedb/issues/1019
--
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]