[Dev] [Mirrors] New directory: pool/parabola

Luke Shumaker lukeshu at sbcglobal.net
Mon Jun 16 00:47:55 GMT 2014


What I did:

    On Friday (at about 11:00 PM UTC), on repo.parabolagnulinux.org, I
    set `PKGPOOL=pool/parabola`, and created `pool/parabola` in the
    web root.  Newly staged packages from Parabola will go there.
    Eventually, `pool/packages` will just be packages from Arch.[0]

What it affects:

    I don't imagine this affects anybody in a real way, but figured it
    might affect some mirrors, so I should announce it.

    Unfortunately, it did cause a problem with db-sync, where
    `pool/{packages,community}` were not be updated, though the
    symlinks pointing to them were.  This was first reported out by
    IRC user ciclognu at 3:40 PM UTC earlier today.

Why I did it:

    This was to fix previously-theoretical repo breakage with packages
    that are repackaged with the same name, where the Arch version
    overwrites the Parabola version.  (This causes pacman to say
    something about "maximum filesize exceeded" if the Arch version is
    larger, I imagine there's a similar message if the Arch version is
    smaller) On Friday, I had discovered that this actually happened
    with the 'antlr2' package, making the problem no longer
    theoretical.  After making the change, I audited the repos, and
    concluded that antlr2 was the only affected package.

What I did to fix the new error:

    I originally theorized that re-running db-sync would fix the
    (thought-to-be-transient) issue.  Emulatorman ran db-sync, and
    discovered that this was not the case.  From his error log, I was
    able to identify the issue, which was that db-sync tries to rsync
    *all* PKGPOOLS with the Arch mirror.  I fixed this by creating a
    separate ARCHPKGPOOLS variable that is used by db-sync instead.
    This was done, and the repos repaired by 9:48 PM UTC.

Conclusion:

    The new error made me aware of the fact that during normal
    opperation of db-sync, the sync'ed repos are briefly in an invalid
    state where new packages exist in the DBs and as symlinks, but not
    in the pools.  This only lasts for a few seconds, and has caused
    no (reported) errors to date, but it makes me unhappy.  I hope
    that this is one of the nails in the coffin for db-sync, so it can
    be replaced by db-import (which I now realize I have never
    published).

Happy hacking,
~ Luke Shumaker

[0]: This will have the added advantage that it will greatly simplify
     sharing package files for mirrors that mirror both Arch and
     Parabola mirrors.  The current solution is... gross.  Most
     packages will eventually be moved as they get updated.  We'll
     probably manually move (or remove?) mips64el packages eventually.



More information about the Dev mailing list