Offloading sets mtime relative to current timezone

  • Done
  • quality assurance status badge
Details
One participant
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 10 Jan 2019 15:15
(name . Bug Guix)(address . bug-guix@gnu.org)
878szsd2f4.fsf@gnu.org
The ‘reset-timestamps’ procedure in (guix store database) apparently
sets the time relative to the current timezone, leading to
discrepancies:

Toggle snippet (18 lines)
$ TZ=UTC stat /gnu/store/9fn3k60lgg28r40p2b74nzhy5v3a9cp8-guix-dbd346a/./guix/ftp-client.scm /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/ftp-client.go
File: /gnu/store/9fn3k60lgg28r40p2b74nzhy5v3a9cp8-guix-dbd346a/./guix/ftp-client.scm
Size: 12062 Blocks: 24 IO Block: 4096 regular file
Device: 811h/2065d Inode: 169314017 Links: 73
Access: (0444/-r--r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-01-10 10:14:11.376891486 +0000
Modify: 1970-01-01 00:00:01.000000000 +0000
Change: 2019-01-10 13:57:56.753652848 +0000
Birth: -
File: /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/ftp-client.go
Size: 110469 Blocks: 216 IO Block: 4096 regular file
Device: 811h/2065d Inode: 349340114 Links: 435
Access: (0444/-r--r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-01-09 17:57:27.717568033 +0000
Modify: 1969-12-31 23:00:01.000000000 +0000
Change: 2019-01-08 17:57:01.368666736 +0000

The time should always be one-second-after-Epoch, UTC.

Ludo’.
L
L
Ludovic Courtès wrote on 10 Jan 2019 16:59
(address . 34030@debbugs.gnu.org)
87woncbj1u.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (4 lines)
> The ‘reset-timestamps’ procedure in (guix store database) apparently
> sets the time relative to the current timezone, leading to
> discrepancies:

It may not be the right diagnostic. We have this:

Toggle snippet (62 lines)
ludo@berlin ~$ stat -c '%Y %h %n' /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/*.go | sort -k1 -n
-3599 112 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/sets.go
-3599 306 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/licenses.go
-3599 32 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/svn-download.go
-3599 36 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/hg-download.go
-3599 39 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/graph.go
-3599 403 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/serialization.go
-3599 414 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/http-client.go
-3599 435 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/ftp-client.go
-3599 437 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/combinators.go
-3599 43 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/upstream.go
-3599 441 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/monad-repl.go
-3599 445 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/cve.go
-3599 445 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/describe.go
-3599 445 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/gnupg.go
-3599 453 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/discovery.go
-3599 457 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/pki.go
-3599 461 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/workers.go
-3599 462 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/base32.go
-3599 462 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/base64.go
-3599 462 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/i18n.go
-3599 466 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/cache.go
-3599 480 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/profiling.go
-3599 485 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/glob.go
-3599 50 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/modules.go
-3599 518 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/base16.go
-3599 554 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/records.go
0 52 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/memoization.go
0 8 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/cvs-download.go
1 105 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/ssh.go
1 117 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/inferior.go
1 156 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/download.go
1 235 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/grafts.go
1 274 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/docker.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/build-system.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/ci.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/cpio.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/derivations.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/elf.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/gexp.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/gnu-maintenance.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/monads.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/packages.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/profiles.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/progress.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/search-paths.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/self.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/store.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/swh.go
1 2 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/zlib.go
1 363 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/nar.go
1 363 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/tests.go
1 3 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/git-download.go
1 419 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/scripts.go
1 4 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/status.go
1 5 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/channels.go
1 5 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/git.go
1 6 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/config.go
1 82 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/utils.go
1 88 /gnu/store/c1ndi2hbg1fcs06gwmbwp297ky2pkw7h-guix-0.16.0-8.7ba2b27/lib/guile/2.2/site-ccache/guix/ui.go

(First column is mtime, second column is nlinks.)

Many files are OK. Those with mtime=0 date back to before commit
e4752118691e41ae8307649d1abfd4739b3e4bfa.

Those with mtime=-3599 typically have a lot of hard links (for
deduplication) and correspond to source files that rarely change, which
suggests they might have been created long ago and we’re just seeing now
the symptoms of old problems.

Actually, the wrong mtime may come from the synchronization of the store
on the new storage device on berlin a couple of months ago. That sounds
very likely.

I was not able to reproduce on my machine using ‘guix copy --from’
(which uses the same code path as offloading) so I’ll just close it
assuming it’s a problem specific to berlin.

Ludo’.
L
L
Ludovic Courtès wrote on 10 Jan 2019 16:59
control message for bug #34030
(address . control@debbugs.gnu.org)
87va2wbj1m.fsf@gnu.org
tags 34030 notabug
close 34030
?