#6191 ExtUtils-CBuilder-0.280223.tar.gz missing in look-aside cache
Closed: Fixed None Opened 6 years ago by ppisar.

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.

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

{{{

!/usr/bin/python

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:

  • com.ifedorenko.m2e.sourcelookup-192e51f.tar.gz
  • docker-9910a0c.tar.gz
  • ExtUtils-CBuilder-0.280223.tar.gz
  • File-Find-utf8-0.009.tar.gz
  • jenkins-1.616.tar.gz
  • krusader-2.4.0-beta3.tar.bz2
  • qttools-opensource-src-5.4.2.tar.xz
  • qttranslations-opensource-src-5.4.2.tar.xz
  • stomp.py-4.0.16.tar.gz
  • sundials-2.6.1.tar.gz
  • sundials-pkgconfig_files.tar.gz

My apologies for the trouble.

Metadata Update from @ppisar:
- Issue set to the milestone: Fedora 22 Final

4 years ago

Login to comment on this ticket.

Metadata