Your message dated Wed, 21 Nov 2012 16:20:34 +0000
with message-id <[email protected]>
and subject line Bug#691377: Removed package(s) from unstable
has caused the Debian Bug report #44020,
regarding Mirror does not always return a failure error code
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
44020: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=44020
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: mirror
Version: 2.9-4

This is another bug in mirror that I found with my debugging/informational
patch that was part of my last report.

mirror does not always return $exit_fail or $exit_fail_noconnect when the
connection fails.

A typically example found in my logs would be:
----------------------------------------------------------------------------
package=redhat.ftp ftp.redhat.com:/ -> /home/ftp/pub/mirrors/redhat//ftp.redhat.
com
Cannot login, skipping package (status is 2)

Mirror redhat:redhat.ftp (pid 20771) ended with status: 0
----------------------------------------------------------------------------

The first status printed was added to  mirror around line 1239, just to make
sure that $exit_status had the right  value, while the second status was the
one mirror-master got from $?.

I haven't  been able  to explain  why it only  happened for  one of  my four
mirrors and  not the other ones,  but seing the local  ($exit_status) in the
code, and the  reusal of the same variable name  (one instance being global)
didn't  make me  feel good,  so I  used the  sledgehammer approach  and just
removed thed the variable passing stuff and let the variable as global in
the whole script. 

It's been working  just fine for me now. I run  mirror-master every 5mn with
values like so in /etc/mirror/mm/mirrors:
redhat:redhat.ftp 20 0
(retry every 5mn until the mirror is complete and then back off for 20H)

I've too  lazy to  do a better  fix or  to find out  the exact  problem with
local. You might not be thrilled with this  patch, but I can assure you that
it is necessary for me and that it works:
(I also added code to return 127  if mirror is killed for any reason because
I want it to be re-run by mirror-master next time mirror-master runs)

----------------------------------------------------------------------------
--- mirror.debian       Tue Aug 24 19:18:23 1999
+++ mirror      Thu Aug 26 16:09:53 1999
@@ -731,7 +731,7 @@
                        $value{ 'get_patt' } = pop( @get_patt );
                        $value{ 'local_dir' } = '.';
                        $value{ 'remote_user' } = 'anonymous';
-                       $exit_status = &do_mirror();
+                       &do_mirror();
                }
                return;
        }
@@ -740,7 +740,7 @@
        if( $command_line{ 'interactive' } ){
                # No config file to read
                $value{ 'package' } = 'interactive';
-               $exit_status = &do_mirror();
+               &do_mirror();
                return;
        }
 
@@ -760,7 +760,7 @@
                # Is this a new package?
                if( $value{ 'package' } && $key eq 'package' ){
                        # mirror the existing package
-                       $exit_status = &do_mirror();
+                       &do_mirror();
                        
                        # reset
                        &set_defaults();
@@ -786,7 +786,7 @@
 
        # Mirror the last package in the file
        if( $value{ 'package' } ){
-               $exit_status = &do_mirror();
+               &do_mirror();
        }
 }
 
@@ -994,7 +994,7 @@
                $skip_till = $limit_packages = 0;
        }
        
-       local( $exit_status ) = $exit_fail_noconnect;  # Presume the worse.
+       $exit_status = $exit_fail_noconnect;  # Presume the worse.
        $timeouts = 0;
 
        # set things from the command line arguments
@@ -3860,14 +3860,14 @@
 {
        $sigs ++;
        if( $sigs > $max_sigs ){
-               exit( 0 );
+               exit( 127 );
        }
 
         local( $sig ) = @_;
         local( $msg ) = "Caught a SIG$sig shutting down";
         local( $package, $filename, $line ) = caller;
         warn "$package:$filename:$line $msg";
-        exit( 0 );
+        exit( 127 );
 }
 
 sub trap_signals
----------------------------------------------------------------------------

Cheers,
Marc
-- 
Microsoft is to software what McDonalds is to gourmet cooking
 
Home page: http://marc.merlins.org/ (friendly to non IE browsers)
Finger [email protected] for PGP key and other contact information

--- End Message ---
--- Begin Message ---
Version: 2.9-62+rm

Dear submitter,

as the package mirror has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see http://bugs.debian.org/691377

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
[email protected].

Debian distribution maintenance software
pp.
Ansgar Burchardt (the ftpmaster behind the curtain)

--- End Message ---

Reply via email to