Hi altogether, I just had a look at havp and this bugreport. Using the patch suggested in this report works, but sometimes havp takes some time to close the files. This causes mount to fail. The attached patch also tries to unmount /var/spool/havp, but if this fails it retries to unmount it after a delay of one second. This patch fails if another process uses /var/spool/havp, but this shouldn't be the case normally.
With best regards, Wolfram -- tarent Gesellschaft für Softwareentwicklung und IT-Beratung mbH Geschäftsführer: Boris Esser, Elmar Geese HRB AG Bonn 5168 - USt-ID (VAT): DE122264941 Heilsbachstraße 24, 53123 Bonn, Telefon: +49 228 52675-0 Thiemannstraße 36 a, 12059 Berlin, Telefon: +49 30 5682943-30 Internet: http://www.tarent.de/ • Telefax: +49 228 52675-25
From 194d6dd855669c76fdfe14cdff80b14e68560e51 Mon Sep 17 00:00:00 2001 From: Wolfram Quester <[email protected]> Date: Fri, 11 Feb 2011 12:45:54 +0100 Subject: [PATCH 1/2] fix unmounting of loop devices (see #558370) STDERR is redicected to /dev/null to suppress the error message: > umount: /var/spool/havp: device is busy. > (In some cases useful info about processes that use > the device is found by lsof(8) or fuser(1)) --- debian/havp.init | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/debian/havp.init b/debian/havp.init index e3bee93..4a10613 100644 --- a/debian/havp.init +++ b/debian/havp.init @@ -71,11 +71,15 @@ case "$1" in find $havp_mountpoint/ -type f -delete echo " done" - if [ x"$USE_LOOPBACK" = x"true" ] && [ "`mount | grep ^$havp_loopback`" ]; then - echo -n "Unmounting $havp_mountpoint ..." - umount $havp_mountpoint - echo "done" + if [ x"$USE_LOOPBACK" = x"true" ] && [ "`mount | grep \" $havp_mountpoint\"`" ]; then + echo -n "Unmounting $havp_mountpoint ..." + while !( umount "$havp_mountpoint" 2> /dev/null ) ; do + sleep 1 + echo "Retrying to unmount $havp_mountpoint ..." + done + echo "done" fi + ;; reload) # -- 1.7.2.3

