I keep working on my issue,
Here is a working strace, when downloading package osad from spacewalk
client web repository:
stat("/data/satellite/redhat/1/b4f/osad/5.10.34-1.el5/noarch/b4f797216885818ee51d9a01813422a1/osad-5.10.34-1.el5.noarch.rpm",
0x7fff36060790) = -1 ENOENT (No such file or directory)
stat("/data/satellite/redhat/1/b4f/osad/5.10.34-1.el5/noarch/b4f797216885818ee51d9a01813422a1",
{st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
rename("/data/satellite/redhat/1/stage/osad-5.10.34-1.el5.noarch.rpm",
"/data/satellite/redhat/1/b4f/osad/5.10.34-1.el5/noarch/b4f797216885818ee51d9a01813422a1/osad-5.10.34-1.el5.noarch.rpm")
= 0
chmod("/data/satellite/redhat/1/b4f/osad/5.10.34-1.el5/noarch/b4f797216885818ee51d9a01813422a1/osad-5.10.34-1.el5.noarch.rpm",
0644) = 0It seems that spacewalk-repo-sync behaves differently when a local repo is used (ie file:///var/...) or a web repo. With a local repo, the rename is called on the source name to the dest name. With a web repo, the repo is created in /MOUNT_POINT/redhat/1/stage and then renamed, which is much better. Could you please help me with this one? I'm really stuck and have no idea where to look at in the code. Pierre 2012/1/23 Pierre Casenove <[email protected]>: > Hello, > I've straced spacewalk-repo-sync call. > Here is the error: > stat("/data/satellite/redhat/1/bbe/mrepo/0.8.7-2.el5/noarch/bbe01b9ea61f85f4892dedc0fbb89b73/mrepo-0.8.7-2.el5.noarch.rpm", > 0x7fff4f62f540) = -1 ENOENT (No such file or directory) > stat("/data/satellite/redhat/1/bbe/mrepo/0.8.7-2.el5/noarch/bbe01b9ea61f85f4892dedc0fbb89b73", > {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 > rename("/var/www/html/pub/epel/5/epel5-x86_64/mrepo-0.8.7-2.el5.noarch.rpm", > "/data/satellite/redhat/1/bbe/mrepo/0.8.7-2.el5/noarch/bbe01b9ea61f85f4892dedc0fbb89b73/mrepo-0.8.7-2.el5.noarch.rpm") > = -1 EXDEV (Invalid cross-device link) > > /data/satellite is Spacewalk mount_point > /var/www/html/pub/epel/5/epel5-x86_64 is where the rpm is stored > locally on the server. It gets here using reposync. > Folder > /data/satellite/redhat/1/bbe/mrepo/0.8.7-2.el5/noarch/bbe01b9ea61f85f4892dedc0fbb89b73/ > is correctly created. > > I've also dug a bit in bugzilla and found BZ 676369 being corrected > for spacewalk 1.6. And this commit in particular: > 2dbe4deade884d410f93bfcd30947bb77dd18e88 > - pkgfd = os.open(packagePath, os.O_WRONLY | os.O_CREAT | os.O_TRUNC) > - os.lseek(fd, 0, 0) > - while 1: > - buffer = os.read(fd, 65536) > - if not buffer: > - break > - n = os.write(pkgfd, buffer) > - if n != len(buffer): > - # Error writing to the file > - raise IOError, "Wrote %s out of %s bytes in file %s" % ( > - n, len(buffer), packagePath) > - os.close(pkgfd) > + os.rename(filename, packagePath) > # set the path perms readable by all users > - setPermsPath(packagePath, chmod=0644) > + os.chmod(packagePath, 0644) > > > This patch introduces the use of os.rename command... which seems to > be a problem with local repositories. > > Thanks in advance for your help, > > Pierre > > > 2012/1/23 Pierre Casenove <[email protected]>: >> Sorry to spam: it works well with public repositories, it only fails >> with repositories built on the server, in my case: >> - mrepo >> - a subset of EPEL : I use reposync to download and built locally a >> repo with only some rpms of EPEL. >> >> Pierre >> >> 2012/1/23 Pierre Casenove <[email protected]>: >>> Some more information: >>> - reposync also fails with public repositories from internet (like >>> spacewalk client) >>> - on my system /usr partition is mounted readonly >>> - the rpms are stored on a NFS volume >>> >>> Thanks, >>> >>> Pierre >>> >>> >>> 2012/1/23 Pierre Casenove <[email protected]>: >>>> Hello, >>>> I have spacewalk 1.6 on postgresql and I have the following error log >>>> when trying to reposync packages dowloaded by mrepo: >>>> 57/57 : busybox-1.2.0-10.el5_7.1-1.x86_64 >>>> (50, 'Package upload failed: [Errno 18] Invalid cross-device link', >>>> 'Invalid information uploaded to the server') >>>> >>>> Could you please tell me waht is the meaning of such error? >>>> >>>> Thanks in advance, >>>> >>>> Pierre _______________________________________________ Spacewalk-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/spacewalk-list
