Originally created by: mcdamo
In a singledrive setup with a backup that spans tapes, amrecover will hang after asking for the next tape.
amrecover.20220716044941.debug.txt
amidxtaped.20220716045144.debug.txt
The crucial log is the last line of amidxtaped:
amidxtaped: ctl line: TP h-igetp:dvs
The expected result is
amidxtaped: CTL << TAPE chg-single:tape:/dev/st0
So it appears there is some problem with the client/server messaging.
I traced the problem to here, though I don't understand the underlying cause of why getline_async
is failing at this point
https://github.com/zmanda/amanda/blob/6cec2349bfab67b4c6e5237c9ffdbff81ec2b6c7/server-src/amidxtaped.pl#L91-L92
Using non-async read is a workaround. It can be implemented by replacing those lines with:
my $buf;
$buf = $self->{'clientservice'}->getline($self->{'clientservice'}->{'ctl_stream'});
$steps->{'got_response'}->(undef, $buf);
This issue is present in v3.5 source as well as pre-built packages for various distributions.