Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: "Michał Górny" <mgorny@g.o>
Cc: gentoo-portage-dev@l.g.o, Alexander Berntsen <bernalex@g.o>
Subject: Re: [gentoo-portage-dev] [PATCH] egencache: add --stable-mtime option
Date: Sun, 20 Dec 2015 18:40:00
Message-Id: 5676F602.9090909@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [PATCH] egencache: add --stable-mtime option by "Michał Górny"
1 On 12/20/2015 01:24 AM, Michał Górny wrote:
2 > On Sat, 19 Dec 2015 15:51:29 -0800
3 > Zac Medico <zmedico@g.o> wrote:
4 >
5 >> On 12/16/2015 09:49 AM, Michał Górny wrote:
6 >>> On Wed, 16 Dec 2015 14:38:03 +0100
7 >>> Alexander Berntsen <bernalex@g.o> wrote:
8 >>>
9 >>>> -----BEGIN PGP SIGNED MESSAGE-----
10 >>>> Hash: SHA512
11 >>>>
12 >>>> On 16/12/15 06:33, Zac Medico wrote:
13 >>>>> Disable Manifest "stable mtime" behavior by default, and add a
14 >>>>> corresponding egencache option.
15 >>>> This message tells me nothing about why we need to do this.
16 >>>
17 >>> We need do this because we changed the behavior and the new behavior is
18 >>> counter-intuitive. We already had a number of bugs caused by it,
19 >>> and while it's used by Infra, it's at least unexpected when someone
20 >>> manually runs 'repoman manifest'.
21 >>
22 >> Just because it was historically buggy does not mean that it will always
23 >> be that way. I believe that it will be very safe once we've fixed it to
24 >> include the mtimes of all relevant directories in the max mtime calculation.
25 >>
26 >>> I mean, before this all started 'repoman manifest' just updated
27 >>> the Manifest which meant it's mtime changed. Nowadays, it also sets
28 >>> mtime to some value in the past, which means running 'repoman manifest'
29 >>> may result in updated Manifest having mtime older than the old
30 >>> Manifest. As a result, people using rsync are in trouble. And this has
31 >>> been reported too by overlay owners.
32 >>
33 >> We should get our facts straight. It's not possible for the updated
34 >> Manifest to have an older mtime than the old manifest, because the mtime
35 >> of the old Manfiest is included in the max mtime calculation.
36 >
37 > Unless you remove the old Manifest (and distfiles) to have Portage
38 > refetch the files and recalc the digests.
39
40 Removing the Manifest will bump the mtime of its parent directory, and
41 that mtime is included in the max mtime calculation.
42 --
43 Thanks,
44 Zac