Bug 241735 - reposync problem with byte ranges
reposync problem with byte ranges
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: yum-utils (Show other bugs)
6
All Linux
medium Severity medium
: ---
: ---
Assigned To: Seth Vidal
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-05-29 18:21 EDT by Bill McGonigle
Modified: 2008-03-13 09:35 EDT (History)
1 user (show)

See Also:
Fixed In Version: 1.0.4
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-03-13 09:35:15 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
strace with HTTP info (51.44 KB, text/plain)
2007-05-29 22:09 EDT, Bill McGonigle
no flags Details

  None (edit)
Description Bill McGonigle 2007-05-29 18:21:15 EDT
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 18:50:00 EDT
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-29 20:39:44 EDT
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-29 20:46:05 EDT
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-29 22:09:34 EDT
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 10:46:57 EDT
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 10:51:01 EDT
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 09:35:15 EDT
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

Note You need to log in before you can comment on or make changes to this bug.