Package: dirvish Version: 1.2.1-1.1 Severity: normal Tags: patch I have some machines that take a long time to run their backups.
The dirvish cron job runs every day, but sometimes yesterday's dirvish jobs are still running. The dirvish cron job happily tries to run dirvish again; now you get half the network bandwidth available, so if that day's backups take that long again, they'll create an infinite backlog.... The /etc/dirvish/dirvish-cronjob that starts the backups can address this; I have attached a patch that does address it. I release the patch under the terms of the GNU General Public License version 2 or later, at your option. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.22-3-vserver-686 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages dirvish depends on: ii libtime-modules-perl 2006.0814-2 Various Perl modules for time/date ii libtime-period-perl 1.20-8 Perl library for testing if a time ii perl 5.8.8-12 Larry Wall's Practical Extraction ii perl-modules 5.8.8-12 Core Perl modules ii rsync 3.0.2-1 fast remote file copy program (lik Versions of packages dirvish recommends: ii ssh 1:4.7p1-8 secure shell client and server (me -- no debconf information
36a37,62 > ## Asheesh's locking addition > fail() { > echo "Cron job currently running; I'm outta here." > exit 1; > } > > > die_if_dirvish_locked() { > OTHER_PID=$(cat /var/lock/dirvish-cronjob 2>/dev/null) > # if the PID file exists: > [ -f /var/lock/dirvish-cronjob ] && > ps "$OTHER_PID" 2>&1 >/dev/null && fail > } > > lock_dirvish() { > MY_PID=$$ > echo "$MY_PID" > /var/lock/dirvish-cronjob > } > > unlock_dirvish() { > rm -f /var/lock/dirvish-cronjob > } > > die_if_dirvish_locked > lock_dirvish > 44a71,72 > unlock_dirvish >