WenyXu opened a new issue, #3052:
URL: https://github.com/apache/incubator-opendal/issues/3052

   
   We designed some chaos tests, which simulate what problems will occur when 
the disk is full.
   
   **Prepares**
   ```
   fallocate -l 512K disk.img 
   mkfs disk.img 
   mkdir ./td
   sudo mount -o loop td.img ./td
   chmod a+wr ./td
   ```
   **Codes**
   
   ```rust
   #[tokio::test(flavor = "multi_thread")]
   async fn object_store_write() {
       let mut builder = object_store::services::Fs::default();
       let root_dir = "/tmp/chaos/td/";
   
       let _ = builder.root(root_dir);
       let store = ObjectStore::new(builder).unwrap().finish();
   
       // XKB
       let data = [96u8; 1024 * 512]; // The writable was smaller than 512KB
       store.write("/test", data.to_vec()).await.unwrap();
   }
   ```
   
   The test was expected to raise `no space` errors, but it didn't.
   
   ```
   test tests::standalone_read_write::object_store_write ... ok
   ```
   
   However, if we check the written file, it only contains partial bytes.
   
   ```bash
   ➜  td ls -lh  
   total 448K
   drwx------ 2 root root  16K Sep 13 08:28 lost+found
   -rw-rw-r-- 1 weny weny 428K Sep 13 09:10 test
   ```
   
   See also: https://github.com/tokio-rs/tokio/issues/6005


-- 
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]

Reply via email to