chitralverma commented on issue #6235:
URL: https://github.com/apache/opendal/issues/6235#issuecomment-2922666353

   after setting up azurite/ minio and testing this locally, i see the issue 
now,
   
   for local fs, the exception is being thrown at the time of file `open` 
properly as a `opendal.exceptions.ConditionNotMatch: ConditionNotMatch 
(permanent)`
   
   for azblob/ s3(minio) your 
[observation](https://github.com/apache/opendal/issues/6235#issuecomment-2921603821)
 was correct, and the error comes at the time of file `close`. Debugging the 
error, i see that its of kind `Interrupted` which wraps the `ConditionNotMatch` 
error.
   
   <details>
   <summary>Error Block</summary>
   
   ```rs
   
    &err = Custom {
       kind: Interrupted,
       error: Error {
           kind: ConditionNotMatch,
           message: "AzblobError { code: \"BlobAlreadyExists\", message: \"The 
specified blob already exists. RequestId:5c62cc3a-1cac-422f-87b0-0d5907b337b2 
Time:2025-05-30T14:43:22.550Z\" }",
           status: Permanent,
           operation: "write",
           context: [
               (
                   "uri",
                   
"http://127.0.0.1:10000/devstoreaccount1/test/tmp/test_file_37b695e5-3c8e-4110-9f86-7e27ee134441.txt";,
               ),
               (
                   "response",
                   "Parts { status: 409, version: HTTP/1.1, headers: 
{\"server\": \"Azurite-Blob/3.23.0\", \"x-ms-error-code\": 
\"BlobAlreadyExists\", \"x-ms-request-id\": 
\"5c62cc3a-1cac-422f-87b0-0d5907b337b2\", \"content-type\": 
\"application/xml\", \"date\": \"Fri, 30 May 2025 14:43:22 GMT\", 
\"connection\": \"keep-alive\", \"keep-alive\": \"timeout=5\", 
\"transfer-encoding\": \"chunked\"} }",
               ),
               (
                   "service",
                   "azblob",
               ),
               (
                   "path",
                   "test_file_37b695e5-3c8e-4110-9f86-7e27ee134441.txt",
               ),
               (
                   "written",
                   "0",
               ),
           ],
           source: None,
       },
   }
   ```
   </details>
   
   This is happening for async and sync operator because they both return 
`std::io::{Result, Error}`, `not opendal::Error`


-- 
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: commits-unsubscr...@opendal.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to