Learn more about these different git repos.
Other Git URLs
I uploaded !ExtUtils-CBuilder-0.280223.tar.gz for perl-!ExtUtils-CBuilder package by fedpkg tool. It did not report any issue but consecutive source download fails:
{{{ $ fedpkg sources Downloading ExtUtils-CBuilder-0.280223.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 404 Not Found Could not execute sources: Command '['curl', '-H', 'Pragma:', '-o', './ExtUtils-CBuilder-0.280223.tar.gz', '-R', '-S', '--fail', 'http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-CBuilder/ExtUtils-CBuilder-0.280223.tar.gz/54269e7cb7a5d995d28fc46933c6e045/ExtUtils-CBuilder-0.280223.tar.gz']' returned non-zero exit status 22 }}}
The issue is the [http://pkgs.fedoraproject.org/repo/pkgs/perl-ExtUtils-CBuilder/ExtUtils-CBuilder-0.280223.tar.gz/54269e7cb7a5d995d28fc46933c6e045/] directory on the server is empty.
I cannot reupload it as it fedpkg reports the file is already there.
It prevents me from building the package.
Ok this is fixed but is part of a larger problem bochecha and I are working on
I'm reopening this, to track the root cause.
So, what happened is that my latest patches to ansible got pushed to production. At some point, the CGI script now tries creating a hardlink, and that fails with an OSError: [Errno 13] Permission denied.
OSError: [Errno 13] Permission denied
This is caused by SELinux.
When I tested my patches in staging, SELinux was disabled. (I believe it also was disabled in production at the time)
Now SELinux is enabled in prod, which is preventing the hardlinking from happening.
One more thing, the CGI script wasn't sending its errors back to the client properly, so fedpkg was telling you that the upload had succeeded.
This part should now be fixed.
We're still working on the SELinux issue.
Ok I think I fixed all the packages I found with a descrepency, we have a new SELinux policy deployed, just needs some more testing before trying to turn SELinux back on.
Ok I wrote a script to check all the folder, it doesn't report any errors anymore
{{{
import os
basedir = '/srv/cache/lookaside/pkgs/'
for pkg in sorted(os.listdir(basedir)): if pkg in ['.', '..', '.#upload.cgi.1.6']: continue #print pkg pkg_versioned = os.listdir(os.path.join(basedir, pkg)) for pkgv in pkg_versioned: path = os.path.join(basedir, pkg, pkgv) if not os.path.isdir(path): #print 'Ignoring (file not folder): %s' % path continue files = os.listdir(path) if 'md5' in files: shum = os.listdir(os.path.join(path, 'md5')) if len(shum) > 1: print 'Check %s' % files continue shum = shum[0] sources = os.listdir(os.path.join(path, 'md5', shum)) if len(sources) > 1: print 'Check %s' % files continue sources = sources[0] if not os.path.exists(os.path.join(path, shum, sources)): print 'Fix %s' % os.path.join(path, shum, sources) break }}}
Uploads now work with the new SELinux policy, I just tested it.
As Pierre-Yves mentioned, he fixed all the affected source files, which were:
My apologies for the trouble.
Metadata Update from @ppisar: - Issue set to the milestone: Fedora 22 Final
Login to comment on this ticket.