From 3054b8f5c16a7e0646dccd145dd9accb68800cd9 Mon Sep 17 00:00:00 2001 From: Matthew Bloch Date: Wed, 31 Dec 2014 17:58:41 +0000 Subject: Roughly deal with ENOSPC condition despite disk being reported as full (btrfs metadata problem). Possibly needs more safety features. --- byteback-prune | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'byteback-prune') diff --git a/byteback-prune b/byteback-prune index 7e3e83e..2a92209 100755 --- a/byteback-prune +++ b/byteback-prune @@ -62,7 +62,14 @@ lock_out_other_processes("byteback-prune") @df_history = DiskFreeHistory.new(ENV['HOME']) begin @df_history.new_reading! -rescue => anything +rescue Errno::ENOSPC + if @do_list + warn("Couldn't write disk history file due to lack of space, ignoring") + else + warn("Couldn't write disk history file due to lack of space, going to --prune-force") + @do_prune = @do_prune_force = true + end +rescue => anything_else error("Couldn't record disk history of #{@df_history.mountpoint} in #{@df_history.history_file}, installation problem?") raise end @@ -117,7 +124,9 @@ if !@do_prune_force end end -exit 0 unless File.exists?(PRUNING_FLAG) && @do_prune +exit 0 unless + (@do_prune && File.exists?(PRUNING_FLAG)) || + @do_prune_force exit 0 unless @do_prune_force || gradient_30m == 0 -- cgit v1.2.3