Bug 241735

Summary: reposync problem with byte ranges
Product: [Fedora] Fedora Reporter: Bill McGonigle <bill-bugzilla.redhat.com>
Component: yum-utilsAssignee: Seth Vidal <skvidal>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 6CC: tim.lauridsen
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 1.0.4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-03-13 13:35:15 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
strace with HTTP info none

Description Bill McGonigle 2007-05-29 22:21:15 UTC
Description of problem:

cobble reposync fails if interrupted (on continue)

Version-Release number of selected component (if applicable):

cobbler-0.4.8-1.fc6

How reproducible:

always

Steps to Reproduce:
1. interrupt reposync in progress
2. try to run it again
  
Actual results:

python stack trace - strace'ing reveals HTTP Unsatisfiable error - related to
byte ranges

Expected results:

successful continuation of download

Additional info:

using mirrors.kernel.org

removing the /var/www/cobbler/repo_mirror/ rpm file that was partially
downloaded allows reposync to finish

guessing the logic to ask the server for the right byte range has a defect

Comment 1 Michael DeHaan 2007-05-29 22:50:00 UTC
Bill, 

Please post the contents of your /var/lib/cobbler/repos file and the contents of
the stack trace.

Comment 2 Bill McGonigle 2007-05-30 00:39:44 UTC
Stacktrace (and last few info messages):

/var/www/cobbler/repo_mirror/fc6i386extras/opencv-python-1.0.0-1.fc6.i386.rpm
already exists and appears to be complete
Downloading openlierox-0.57-0.2.beta1.fc6.i386.rpm
Downloading openlierox-0.57-0.3.beta2.fc6.i386.rpm
Traceback (most recent call last):
  File "/usr/bin/reposync", line 196, in ?
    main()
  File "/usr/bin/reposync", line 190, in main
    path = repo.getPackage(pkg)
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 440, in getPackage
    cache=cache
  File "/usr/lib/python2.4/site-packages/yum/yumRepo.py", line 426, in __get
    raise Errors.RepoError, "failure: %s from %s: %s" % (relative, self.id, e)
yum.Errors.RepoError: failure: openlierox-0.57-0.3.beta2.fc6.i386.rpm from
fc6i386extras: [Errno 256] No more mirrors to try.
cobbler reposync failed

repos file:

---
-
    keep_updated: 1
    local_filename: fedora-updates
    mirror: 'http://mirrors.kernel.org/fedora/core/updates/6/i386/'
    name: fc6i386updates
    rpm_list: ''
-
    keep_updated: 1
    local_filename: fedora-extras
    mirror: 'http://mirrors.kernel.org/fedora/extras/6/i386/'
    name: fc6i386extras
    rpm_list: ''


Comment 3 Bill McGonigle 2007-05-30 00:46:05 UTC
oh, this is curious - I might have been hasty in my earlier assumption about the
download not finishing:

This is the one I moved out of the way so it would finish:
-rw-r--r-- 1 root apache 39251480 Apr 16 07:21
/tmp/openlierox-0.57-0.3.beta2.fc6.i386.rpm

size: 39251480

having done so, the new file, successfully downloaded:

-rw-rw-r-- 1 jfredrick bfccomputing 38432280 Apr 16 07:21
/var/www/yum/fedora/extras/6/i386/openlierox-0.57-0.3.beta2.fc6.i386.rpm

size: 38432280

So, somehow the buggered one was bigger.  I had assumed it was incomplete. 
Anyway, I have no clue how that happened, but I can see where that could be a
problem for the continuation routine I might have written. :)

Comment 4 Bill McGonigle 2007-05-30 02:09:34 UTC
Created attachment 155652 [details]
strace with HTTP info

here's an strace of the HTTP exchange.	I seems to read each character with a
system call, so at least you can see the text, though you have to read down the
column.

Comment 5 Michael DeHaan 2007-05-30 14:46:57 UTC
This looks like a problem in the 'reposync' program, which is a part of the
package 'yum-utils'.  (I was asking for the cobbler config file so I could
determine whether this repo was using reposync or rsync for the copying).







Comment 6 Michael DeHaan 2007-05-30 14:51:01 UTC
Seth, I've fwd'd this to you as this issue is something with resuming an
interrupted reposync as opposed to something cobbler specific.  If you need
further help figuring this out, let me know.

About the original defect: "cobbler reposync" is a command that will sync
multiple mirrored repositories, some might use reposync, some might use rsync,
etc.  In this case, it's an http:// repo, so reposync is being shelled out to
using the subprocess module.

The options used aren't that interesting -- /usr/bin/reposync --config=$filename
--repoid=$name --download_path=$path

Thanks!



Comment 7 Seth Vidal 2008-03-13 13:35:15 UTC
okay I can't make this happen in yum-utils 1.0.4 on centos5 which is as close as
I could find to fc6.

Michael, Bill,
 If either of you can recreate this on rhel5/centos5, f7, f8 or rawhide please
reopen. As it is I'm going to mark as fixed in 1.0.4 and up