hzxa21 opened a new issue, #5101:
URL: https://github.com/apache/opendal/issues/5101
### Describe the bug
Version: `0.47.2`
With the following writer configurations, we encounter "writer has not been
closed or aborted, must be a bug".
```rust
let writer = op
.clone()
.layer(TimeoutLayer::new().with_io_timeout(Duration::from_millis(
config.retry.streaming_upload_attempt_timeout_ms,
)))
.layer(
RetryLayer::new()
.with_min_delay(Duration::from_millis(1000))
.with_max_delay(Duration::from_millis(10000))
.with_max_times(3)
.with_factor(2.0)
.with_jitter(),
)
.writer_with(&path)
.concurrent(8)
.executor(Executor::with(monitored_execute))
.await?;
```
It seems that this happens when the opendal retry is triggered on
`writer.close()` .
### Steps to Reproduce
-
### Expected Behavior
-
### Additional Context
Logs:
2024-09-04T07:42:02.770667396Z WARN opendal::layers::retry: will retry
after 1.604547739s because: Unexpected (temporary) at Writer::close, context: {
timeout: 10 } => io operation timeout reached
2024-09-04T07:42:04.377279911Z WARN opendal::services: service=s3
operation=Writer::close path=xxx -> data close failed: NotFound (permanent) at
Writer::close, context: { uri: ..., response: Parts { status: 404, version:
HTTP/1.1, headers: {"accept-ranges": "bytes", "cache-control": "no-cache",
"content-length": "467", "content-security-policy": "block-all-mixed-content",
"content-type": "application/xml", "server": "MinIO",
"strict-transport-security": "max-age=31536000; includeSubDomains", "vary":
"Origin", "vary": "Accept-Encoding", "x-accel-buffering": "no", "x-amz-id-2":
"..."} }, service: s3, path: xxx, written: 138426184 } => S3Error { code:
"NoSuchUpload", message: "The specified multipart upload does not exist. The
upload ID may be invalid, or the upload may have been aborted or completed.",
resource: "xxx", request_id: "xxx" }
2024-09-04T07:42:04.377323167Z WARN opendal::layers::complete: writer has
not been closed or aborted, must be a bug
2024-09-04T07:42:04.37733207Z ERROR risingwave_object_store::object:
streaming_upload_finish failed error=NotFound (persistent) at Writer::close,
context: { uri:..., response: Parts { status: 404, version: HTTP/1.1, headers:
{"accept-ranges": "bytes", "cache-control": "no-cache", "content-length":
"467", "content-security-policy": "block-all-mixed-content", "content-type":
"application/xml", "server": "MinIO", "strict-transport-security":
"max-age=31536000; includeSubDomains", "vary": "Origin", "vary":
"Accept-Encoding", "x-accel-buffering": "no", "x-amz-id-2": "..."} }, service:
s3, path: ... } => S3Error { code: "NoSuchUpload", message: "The specified
multipart upload does not exist. The upload ID may be invalid, or the upload
may have been aborted or completed.", resource: "...", request_id: "..." }
### Are you willing to submit a PR to fix this bug?
- [ ] Yes, I would like to submit a PR.
--
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]