Hi,
Can you try the attached patch.
Jean-Louis
On 08/02/17 12:58 PM, ts...@portrix-systems.de wrote:
Hi,
tried this with:
http://www.zmanda.com/downloads/community/Amanda/3.4.2/Redhat_Enterprise_6.0/amanda-backup_server-3.4.2-1.rhel6.x86_64.rpm
(and also 3.4.1)
Oracle Linux Server release 6.8
# uname -rsv
Linux 4.1.12-61.1.23.el6uek.x86_64 #2 SMP Tue Dec 20 16:51:41 PST 2016
Tapeinfo:
Vendor ID: 'HP '
Product ID: 'Ultrium 4-SCSI '
Revision: 'H63Z'
The test backup doesn't fit on one tape. After I get the E-Mail from
the interactivity module, I can see with lsof that the taper still has
a lock on /dev/nst1:
> # lsof /dev/nst1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
taper 1168 amandabackup 5u CHR 9,129 0t0 1812371 /dev/nst1
touching the check-file looks like this in
/var/log/amanda/server/ptxhamtest/taper.20170208122530.debug:
Wed Feb 08 16:21:12.035824026 2017: pid 1168: thd-0x240ad70: taper:
xfer_queue_message: MSG: <XMsg@0x7ff8bc012390 type=XMSG_PART_DONE
elt=<XferDestTaperSplitter@0x24090a0> version=0>
Wed Feb 08 16:21:12.036846793 2017: pid 1168: thd-0x240ad70: taper:
Building type SPLIT_FILE header of 32768-32768 bytes with
name='localhost' disk='/amanda/testbackupsrc' dumplevel=0 and
blocksize=32768
Wed Feb 08 16:22:52.113249836 2017: pid 1168: thd-0x240ad70: taper:
Device tape:/dev/nst1 error = 'No space left on device'
Wed Feb 08 16:22:52.113278102 2017: pid 1168: thd-0x240ad70: taper:
Device tape:/dev/nst1 setting status flag(s): DEVICE_STATUS_VOLUME_ERROR
Wed Feb 08 16:22:53.101250403 2017: pid 1168: thd-0x240ad70: taper:
xfer_queue_message: MSG: <XMsg@0x7ff8bc012670 type=XMSG_PART_DONE
elt=<XferDestTaperSplitter@0x24090a0> version=0>
Wed Feb 08 16:23:19.976805822 2017: pid 1168: thd-0x1454d20: taper:
Will request retry of failed split part.
Wed Feb 08 16:23:19.977170240 2017: pid 1168: thd-0x1454d20: taper:
tape HAM-M-029-L4 kb 754974720 fm 73 [OK]
Wed Feb 08 16:23:19.980883703 2017: pid 1168: thd-0x1454d20: taper:
Device is in variable block size
Wed Feb 08 16:23:40.882859608 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Wed Feb 08 16:23:40.882974991 2017: pid 1168: thd-0x1454d20: taper:
cmd: /usr/bin/Mail -s AMANDA VOLUME REQUEST: new volume x...@xxx.xxx
Wed Feb 08 16:23:50.888937917 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Wed Feb 08 16:24:00.960351367 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Wed Feb 08 16:24:10.960959061 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
...
Wed Feb 08 17:20:55.510368422 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Wed Feb 08 17:21:05.512939917 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Wed Feb 08 17:21:15.515187884 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Wed Feb 08 17:21:25.517437824 2017: pid 1168: thd-0x1454d20: taper:
Device tape:/dev/nst1 error = 'Can't open tape device /dev/nst1:
Device or resource busy'
Wed Feb 08 17:21:25.517455484 2017: pid 1168: thd-0x1454d20: taper:
Device tape:/dev/nst1 setting status flag(s): DEVICE_STATUS_DEVICE_BUSY
Wed Feb 08 17:21:25.517680908 2017: pid 1168: thd-0x1454d20: taper:
Slot 1 without label can be labeled
Wed Feb 08 17:21:25.517775016 2017: pid 1168: thd-0x1454d20: taper:
new Amanda::Changer::Error: type='fatal', message='Can't open tape
device /dev/nst1: Device or resource busy'
Wed Feb 08 17:21:25.518772880 2017: pid 1168: thd-0x1454d20: taper:
cmd: /usr/bin/Mail -s AMANDA VOLUME REQUEST: new volume x...@xxx.xxx
if I remove "eject-volume yes" from amanda.conf, lsof doesn't show
/dev/nst1 as open after the mail and logfile looks like this when
touching the check-file:
Sun Feb 05 22:01:45.892621331 2017: pid 14498: thd-0x36592a0: taper:
xfer_queue_message: MSG: <XMsg@0x7f5770012690 type=XMSG_PART_DONE
elt=<XferDestTaperSplitter@0x3226530> version=0>
Sun Feb 05 22:01:45.893809646 2017: pid 14498: thd-0x36592a0: taper:
Building type SPLIT_FILE header of 32768-32768 bytes with
name='localhost' disk='abc-rman' dumplevel=0 and blocksize=32768
Sun Feb 05 22:02:27.050993044 2017: pid 14498: thd-0x36592a0: taper:
Device tape:/dev/nst1 error = 'No space left on device'
Sun Feb 05 22:02:27.051019886 2017: pid 14498: thd-0x36592a0: taper:
Device tape:/dev/nst1 setting status flag(s): DEVICE_STATUS_VOLUME_ERROR
Sun Feb 05 22:02:28.006847900 2017: pid 14498: thd-0x36592a0: taper:
xfer_queue_message: MSG: <XMsg@0x7f5770016d70 type=XMSG_PART_DONE
elt=<XferDestTaperSplitter@0x3226530> version=0>
Sun Feb 05 22:02:54.991253275 2017: pid 14498: thd-0x2258610: taper:
Will request retry of failed split part.
Sun Feb 05 22:02:54.992089576 2017: pid 14498: thd-0x2258610: taper:
tape HAM-M-025-L4 kb 804625975 fm 137 [OK]
Sun Feb 05 22:02:54.993163873 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Sun Feb 05 22:02:54.993302419 2017: pid 14498: thd-0x2258610: taper:
cmd: /usr/bin/Mail -s AMANDA VOLUME REQUEST: new volume x...@xxx.xxx
Sun Feb 05 22:03:04.998826673 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Sun Feb 05 22:03:15.005238432 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Sun Feb 05 22:03:25.009766390 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
...
Mon Feb 06 09:13:13.437584985 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Mon Feb 06 09:13:23.455771038 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Mon Feb 06 09:13:33.473860747 2017: pid 14498: thd-0x2258610: taper:
new Amanda::Changer::Error: type='failed', reason='notfound',
message='No acceptable volumes found'
Mon Feb 06 09:13:38.596670849 2017: pid 14498: thd-0x2258610: taper:
Device is in variable block size
Mon Feb 06 09:13:40.734257638 2017: pid 14498: thd-0x2258610: taper:
Slot 1 with label HAM-M-026-L4 is usable
Mon Feb 06 09:13:45.889592195 2017: pid 14498: thd-0x2258610: taper:
Building type TAPESTART header of 32768-32768 bytes with
name='HAM-M-026-L4' disk='' dumplevel=0 and blocksize=32768
Thanks,
Thilo
diff --git a/perl/Amanda/ScanInventory.pm b/perl/Amanda/ScanInventory.pm
index 1727967..a9a5e14 100644
--- a/perl/Amanda/ScanInventory.pm
+++ b/perl/Amanda/ScanInventory.pm
@@ -126,7 +126,7 @@ sub _scan {
my $poll_src;
my $scan_running = 0;
my $interactivity_running = 0;
- my $restart_scan = 0;
+ my $restart_scan = 0; # if a scan must be restarted
my $restart_scan_changer = undef;
my $abort_scan = undef;
my $last_err = undef; # keep the last meaningful error, the one reported
@@ -137,6 +137,7 @@ sub _scan {
my $remove_undef_state = 0;
my $result_cb = $params{'result_cb'};
my $new_inventory = 0;
+ my $restart_scan_running = 0; # if restart_scan is running
my $steps = define_steps
cb_ref => \$result_cb;
@@ -157,6 +158,9 @@ sub _scan {
step restart_scan => sub {
$restart_scan = 0;
+ return if $restart_scan_running;
+ $restart_scan_running = 1;
+
# Reload the tapelist at every scan.
$self->{'tapelist'}->reload(0);
@@ -473,6 +477,7 @@ sub _scan {
step scan_next => sub {
my ($scan_method, $err, $continue_cb) = @_;
+ $restart_scan_running = 0;
if ($scan_method == SCAN_ASK && !defined $self->{'interactivity'}) {
$scan_method = SCAN_FAIL;