summaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2021-10-26 17:11:18 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2021-10-26 17:20:39 +0200
commitf128746a63ae5b009e72d853a117f35c4a2b6cd0 (patch)
treeed7213e61fd463954efeb4f24ade2b867d682886 /crates
parent61746b64b0e7087b17b21df6a1c7291ad25cd428 (diff)
downloadrebel-f128746a63ae5b009e72d853a117f35c4a2b6cd0.tar
rebel-f128746a63ae5b009e72d853a117f35c4a2b6cd0.zip
runner: do not delete whole task dir, only layer and work dir
We will also store a lockfile in the taskdir that must not be deleted.
Diffstat (limited to 'crates')
-rw-r--r--crates/runner/src/task.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/crates/runner/src/task.rs b/crates/runner/src/task.rs
index 296c1a0..659b04d 100644
--- a/crates/runner/src/task.rs
+++ b/crates/runner/src/task.rs
@@ -69,10 +69,9 @@ fn init_task(input_hash: &InputHash, task: &Task) -> Result<fs::Mount> {
fs::ensure_removed(&paths::task_cache_filename(input_hash))?;
let task_state_dir = paths::task_state_dir(input_hash);
- fs::ensure_removed(&task_state_dir)?;
- fs::mkdir(&task_state_dir)?;
let task_layer_dir = paths::join(&[&task_state_dir, paths::TASK_STATE_LAYER_SUBDIR]);
+ fs::ensure_removed(&task_layer_dir)?;
fs::mkdir(&task_layer_dir)?;
fs::fixup_permissions(&task_layer_dir)?;
@@ -90,6 +89,7 @@ fn init_task(input_hash: &InputHash, task: &Task) -> Result<fs::Mount> {
.with_context(|| format!("Failed to bind mount to {:?}", mount_target))?
} else {
let task_work_dir = paths::join(&[&task_state_dir, paths::TASK_STATE_WORK_SUBDIR]);
+ fs::ensure_removed(&task_work_dir)?;
fs::mkdir(&task_work_dir)?;
fs::fixup_permissions(&task_work_dir)?;