diff --git a/zb-cleanup b/zb-cleanup index b4cb63b..f0faeac 100755 --- a/zb-cleanup +++ b/zb-cleanup @@ -40,7 +40,7 @@ done |sort -n | while read l ; do if [ "$curtime" -lt "$max_age" ] ; then #too old - zfs destroy "$snapname" + zfs destroy "$snapname" || echo "$0: zfs destroy $snapname failed" >&2 continue fi @@ -52,7 +52,7 @@ done |sort -n | while read l ; do #if it's too dense, delete the closer snapshot if [ $(( ($density*($curtime-$lasttime))/($timenow-$lasttime) )) -lt 100 ] then - zfs destroy "$snapname" + zfs destroy "$snapname" || echo "$0: zfs destroy $snapname failed" >&2 else lasttime="$curtime" fi diff --git a/zb-pull b/zb-pull index ceb9906..8dc37e5 100755 --- a/zb-pull +++ b/zb-pull @@ -63,6 +63,8 @@ else ret=$? fi +[ "$ret" != 0 ] && echo "pulling to ${local_zfs} failed" >&2 + #in some cases and on some setups (Sun_SSH) when `zfs recv` fails, ssh ignores #the SIGPIPE and the connection hangs there forever, somehow. This fixes the #issue by killing all children that were possibly spawned by this shell.