Debmirror ignores '--method' option (always uses rsync)

Bug #882941 reported by O. Bender
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
debmirror (Debian)
Confirmed
Unknown
debmirror (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

1) Ubuntu 11.10
2) Debmirror 1:2.9ubuntu1
3-4) I use debmirror in my update script, but after dist upgrade (11.04 -> 11.10) debmirror ignores method option and always trying to use rsync. Thats how i launch debmirror:

debmirror --verbose --host=archive.ubuntu.com --root=ubuntu --method=ftp --dist=oneiric --section=main --arch=i386 $repository_working_dir

I tried http method and other reps mirror, debmirror forced rsync method too.

My server has acces only to http and ftp, so debmirror just stops, thats what i see after launching:

Mirroring to /home/repositories/Ubuntu.11.10.repository from http://archive.ubuntu.com/ubuntu/
Arches: i386
Dists: oneiric
Sections: main
Including source.
Pdiff mode: use
Will clean up after mirroring.
Attempting to get lock ...
Updating remote trace files (using rsync) ...

If i put debmirror binary file from Ubuntu 11.04 in /usr/bin it works well. So, looks like a bug in new Ubuntu 11.10 package.

Revision history for this message
Alex Bennée (ajbennee) wrote :

I can confirm this happens. A strace very clearly shows it ignoring me:

29077 execve("/usr/bin/debmirror", ["debmirror", "--host", "sloy", "--method=http", "-r", "apt", "--dist=repo", "--arch=amd64,source", "--section=main", "VNMS_2.1.32-0"], [/* 83 vars */]) = 0
29078 execve("/bin/sh", ["sh", "-c", "patch --version 2>/dev/null >/de"...], [/* 83 vars */]) = 0
29079 execve("/usr/bin/patch", ["patch", "--version"], [/* 81 vars */]) = 0
29078 --- SIGCHLD (Child exited) @ 0 (0) ---
29077 --- SIGCHLD (Child exited) @ 0 (0) ---
29080 execve("/bin/sh", ["sh", "-c", "ed --version 2>/dev/null >/dev/n"...], [/* 83 vars */]) = 0
29081 execve("/bin/ed", ["ed", "--version"], [/* 81 vars */]) = 0
29080 --- SIGCHLD (Child exited) @ 0 (0) ---
29077 --- SIGCHLD (Child exited) @ 0 (0) ---
29082 execve("/bin/pwd", ["/bin/pwd"], [/* 83 vars */]) = 0
29077 --- SIGCHLD (Child exited) @ 0 (0) ---
29083 execve("/bin/sh", ["sh", "-c", "hostname -f 2>/dev/null || hostn"...], [/* 83 vars */]) = 0
29084 execve("/bin/hostname", ["hostname", "-f"], [/* 81 vars */]) = 0
29083 --- SIGCHLD (Child exited) @ 0 (0) ---
29077 --- SIGCHLD (Child exited) @ 0 (0) ---
29085 execve("/bin/sh", ["sh", "-c", "rsync --timeout=300 -aL --partia"...], [/* 83 vars */]) = 0
29085 execve("/usr/bin/rsync", ["rsync", "--timeout=300", "-aL", "--partial", "--no-motd", "sloy::apt/", "--delete", "--include-from=/tmp/hAhNFwYq2H", "--exclude=*", "/media/DaK/VNMS_UPGRADES/VNMS_2."...], [/* 81 vars */]) = 0
29077 --- SIGCHLD (Child exited) @ 0 (0) ---

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in debmirror (Ubuntu):
status: New → Confirmed
Revision history for this message
Alex Bennée (ajbennee) wrote :

This looks like it's an upstream change. From the man-page:

" --rsync-extra=foo[,bar,..]
           Allows to also mirror files from a number of directories that are not part of the package archive itself.

           Debmirror will always use rsync for the transfer of these files, irrespective of what transfer method is
           specified in the --method option. This will therefore not work if your remote mirror does not support rsync, or
           if the mirror needs a different --root option for rsync than for the main transfer method specified with
           --method.
"

However specifying --rsync-extra=none still fails on my setup with:

    Download of dists/repo/Release failed: 500 Can't connect to sloy:80 (Connection refused)

Although looking at apache's logs I can see it never actually tried to fetch the file.

Revision history for this message
O. Bender (ya-dam-vam-parabellum) wrote :

Thanks, "--rsync-extra=none" works for me!
It was rather strange change in interface (

Revision history for this message
KarlGoetz (kgoetz) wrote :

Added a link to the upstream bug for watching.

Changed in debmirror (Debian):
status: Unknown → New
Changed in debmirror (Debian):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.