On Sun, Feb 21, 2021 at 10:20:13PM +0000, Eric Wong wrote:
> > This was tested with the latest release of Grokmirror, v2.0.7.  Note
> > that the "pull" and "fsck" sections are required even though they're
> > empty.

Hmm... That grok-pull requires the [fsck] section is a bug that I introduced
in one of the last versions. :/ I'll put in a fix that doesn't require it.

> >   Another option would be to generate an appropriate v1 or v2
> >   configuration based on which Grokmirror version is detected.  I'm
> >   not sure that's worth the trouble though.
> 
> Ugh, some of these incompatible changes to grokmirror are really
> annoying and will break existing scripts when I upgrade.
> (and I suspect this affects other people, too).

Grokmirror-1.x is not maintained any more and 2.x is a much better codebase
anyway.

It was a difficult call to introduce a config change that intentionally
breaks upgrade path from 1.x to 2.x, but the priority was to avoid a much
bigger problem by sneaking this upgrade on an unsuspecting repo admin.
Grokmirror-2 completely refactors how backend repositories are organized, so
the first grok-fsck run on large repo collections with a lot of alternates
could have had potentially led to a disastrous outcome resulting in repository
corruption. Not a problem for repos on lore.kernel.org where there are no
forks, but very much a problem for git.kernel.org and source.codeaurora.org
mirrors (especially the latter).

So, I had to make the choice between annoyance and potential corruption. :)
The breaking nature of the change is documented in
https://git.sr.ht/~monsieuricon/grokmirror/tree/master/item/UPGRADING.rst

> >     xsys($grok_pull, '-c', "$tmpdir/repos.conf");
> > -   is($? >> 8, 127, 'grok-pull exit code as expected');
> > +   is($? >> 8, 0, 'grok-pull exit code as expected');
> 
> In particular, I'm relying on this exit code in at least one of
> my scripts.  Now I'll have to RTFM to figure out if I should be
> testing any other exit codes or something else...

I'm pretty sure I did this to make grok-pull work better with systemd, sorry.

-K

Reply via email to