Gentoo Archives: gentoo-dev

From: Doug Freed <dwfreed@×××.edu>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Common rsync-gen errors, why they happen, and what you can do about it
Date: Wed, 18 Jan 2017 04:59:22
Message-Id: CAFyXEpKR4Te27GR8QwGjF8My6m5-enDjRf4J1=-Rqkdq8_yuYw@mail.gmail.com
In Reply to: [gentoo-dev] Common rsync-gen errors, why they happen, and what you can do about it by Doug Freed
1 Oh, I missed some things. First off, a general timeline of rsync-gen
2 events (all times occur every hour at roughly specified minute after
3 the hour):
4
5 :00 / :30 - current state of git tree is checked out on git server and
6 then rsynced to private master rsync server - this is your cutoff time
7 for getting changes into the rsync-gen run
8 :06 / :36 - rsync-gen script starts
9 :09 / :39 (ish) - md5-cache generation and manifest thickening have
10 usually completed by this time; rsync-gen runs repoman manifest-check
11 across the whole tree at this time
12 :15 / :45 (ish) - By this time any failure in the repoman
13 manifest-check has surfaced, and if so, I (as well as others, mostly
14 infra) have been emailed about it
15 :20 / :50 (ish) - The final transfer from the staging directory to the
16 final directory has usually finished by this time, though that depends
17 heavily on how many changes were made since the last transfer (if you
18 break things and don't fix them for a while, this can be a lot)
19
20 At some point, the repoman manifest-check, or some variation of it,
21 will probably get added to a post-receive hook, which will then abort
22 your push if you try to push something that would break the conversion
23 process. That said, you should still be doing your due diligence to
24 ensure that eventual hook doesn't yell at you.
25
26 And in case you're wondering why I get emailed about these failures, I
27 wrote the script that thickens Manifests, which does the entire tree
28 as parallel as possible in under a minute. In addition, I improved
29 sizable portions of the rsync-gen script itself. The code isn't
30 absolutely perfect (no code is), so I get emails about any failures so
31 I can see if it's something I need to fix with my code. But it's been
32 a while since that's been the case, so all the failures these days are
33 primarily for the previously mentioned issues.
34
35 -Doug

Replies