Steven, try the attached patch.
Jean-Louis
On 03/05/2012 11:45 AM, Steven Backus wrote:
Are they the latest lines in the amidxtaped debug file?
Yes. Although it didn't get that far this time, it says:
Mon Mar 5 09:39:22 2012: thd-0x1f3cd880: amidxtaped: recovering from split
dumpfile: date 20120302160001 host harmony.med.utah.edu disk sdb1 part
1/UNKNOWN lev 0 comp .gz program /bin/gtar
Mon Mar 5 09:39:22 2012: thd-0x1f3cd880: amidxtaped: ..with decompression
applied
Can you get a backtrace of the process? do the following...
Done, here it is:
#0 0x0000003004a79ba0 in strlen () from /lib64/libc.so.6
#1 0x00002aaaab107108 in amxml_parse_node_CHAR (txt=0x0,
errmsg=0x7fffa8e206b8) at amxml.c:1002
#2 0x00002aaaac2379c6 in _wrap_new_HeaderXML (my_perl=<value optimized out>,
cv=<value optimized out>) at Amanda/Header.c:1916
#3 0x0000003005690af6 in Perl_pp_entersub ()
from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#4 0x000000300568a39e in Perl_runops_standard ()
from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#5 0x0000003005637720 in Perl_call_sv ()
from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#6 0x00002aaaabc0e87f in amglue_source_callback_simple (data=0x1fde1240)
at Amanda/MainLoop.c:1672
#7 0x000000300b62d2bb in ?? () from /lib64/libglib-2.0.so.0
#8 0x000000300b62cdb4 in g_main_context_dispatch ()
from /lib64/libglib-2.0.so.0
#9 0x000000300b62fc0d in ?? () from /lib64/libglib-2.0.so.0
#10 0x000000300b62ff1a in g_main_loop_run () from /lib64/libglib-2.0.so.0
#11 0x00002aaaabc0de27 in _wrap_run_c (my_perl=<value optimized out>,
cv=<value optimized out>) at Amanda/MainLoop.c:1983
#12 0x0000003005690af6 in Perl_pp_entersub ()
from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#13 0x000000300568a39e in Perl_runops_standard ()
#14 0x00000030056380ba in perl_run ()
from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
#15 0x00000000004017bc in main ()
Steve
diff --git a/perl/Amanda/Header.swg b/perl/Amanda/Header.swg
index a7d391b..28cb4e8 100644
--- a/perl/Amanda/Header.swg
+++ b/perl/Amanda/Header.swg
@@ -151,7 +151,11 @@ sub from_string {
sub get_dle {
my $self = shift;
- return Amanda::Header::HeaderXML->new($self->{'dle_str'});
+ if ($self->{'dle_str'}) {
+ return Amanda::Header::HeaderXML->new($self->{'dle_str'});
+ } else {
+ return undef;
+ }
}
package Amanda::Header::Header;
diff --git a/server-src/amidxtaped.pl b/server-src/amidxtaped.pl
index 855d59a..b161554 100644
--- a/server-src/amidxtaped.pl
+++ b/server-src/amidxtaped.pl
@@ -546,7 +546,6 @@ sub xfer_src_cb {
if ($header->{'compressed'}) {
# need to uncompress this file
debug("..with decompression applied");
- my $dle = $header->get_dle();
if ($header->{'srvcompprog'}) {
# TODO: this assumes that srvcompprog takes "-d" to decrypt
@@ -569,9 +568,11 @@ sub xfer_src_cb {
$header->{'clntcompprog'} = '';
}
} else {
- if (!$self->{'their_features'}->has($Amanda::Feature::fe_amrecover_receive_unfiltered) ||
- $dle->{'compress'} == $Amanda::Config::COMP_SERVER_FAST ||
- $dle->{'compress'} == $Amanda::Config::COMP_SERVER_BEST) {
+ my $dle = $header->get_dle();
+ if ($dle &&
+ (!$self->{'their_features'}->has($Amanda::Feature::fe_amrecover_receive_unfiltered) ||
+ $dle->{'compress'} == $Amanda::Config::COMP_SERVER_FAST ||
+ $dle->{'compress'} == $Amanda::Config::COMP_SERVER_BEST)) {
push @filters,
Amanda::Xfer::Filter::Process->new(
[ $Amanda::Constants::UNCOMPRESS_PATH,