Skip to content

Commit 5f2edcf

Browse files
authored
Merge pull request #29 from Burning1020/debug-log
sandbox: remove sandbox dir if fail to create
2 parents 46e401d + 911e917 commit 5f2edcf

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

crates/sandbox/src/rpc.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use log::{debug, info};
1+
use log::{debug, info, warn};
22
use prost_types::Timestamp;
33
use time::OffsetDateTime;
44
use tokio::fs::{create_dir_all, remove_dir_all};
@@ -54,8 +54,13 @@ where
5454
}
5555
let base_dir = format!("{}/{}", self.dir, sandbox_data.id);
5656
create_dir_all(&*base_dir).await?;
57-
let opt = SandboxOption::new(base_dir, sandbox_data);
58-
self.sandboxer.create(&*req.sandbox_id, opt).await?;
57+
let opt = SandboxOption::new(base_dir.clone(), sandbox_data);
58+
if let Err(e) = self.sandboxer.create(&*req.sandbox_id, opt).await {
59+
if let Err(re) = remove_dir_all(base_dir).await {
60+
warn!("roll back in sandbox create rmdir: {}", re);
61+
}
62+
return Err(e.into());
63+
}
5964
let resp = ControllerCreateResponse {
6065
sandbox_id: req.sandbox_id.to_string(),
6166
};

0 commit comments

Comments
 (0)