unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: Mathieu Othacehe <othacehe@gnu.org>,
	guix-sysadmin <guix-sysadmin@gnu.org>,
	54447@debbugs.gnu.org
Subject: bug#54447: cuirass: missing derivation error
Date: Tue, 10 Oct 2023 23:08:12 -0400	[thread overview]
Message-ID: <87mswpeu03.fsf@gmail.com> (raw)
In-Reply-To: <87r0m2v5ih.fsf@gnu.org> ("Ludovic Courtès"'s message of "Tue, 10 Oct 2023 17:52:54 +0200")

Hi Ludovic,

Ludovic Courtès <ludo@gnu.org> writes:

> Hello!
>
> Mathieu Othacehe <othacehe@gnu.org> skribis:
>
>> A lot of builds, among them ~20 system tests[1], are failing with:
>> "cannot build missing derivation
>> ?/gnu/store/hs6kp1lqgymhyp3jndc0dsp0pn4psgv0-gui-installed-desktop-os-encrypted.drv?"
>> errors.
>
> I have a disappointingly simple hypothesis for this.  Remember that
> “missing derivation” errors happen primarily for system tests.
>
> Turns out that ‘cleanup-cuirass-roots’ in maintenance.git, used as an
> mcron job, explicitly removes GC roots for things like *-os-encrypted
> once they’re more than two days old, as well as GC roots for the
> corresponding .drv.
>
> I think this was increasing the likelihood that a .drv would be GC’d by
> the time we run the test: under high load¹, it’s plausible that a system
> test wouldn’t be built within two days after it’s been queued.
>
> I’m proposing the change below to address this; I don’t think we need
> ‘--gc-keep-outputs --gc-keep-derivations’ anymore now that we keep
> things in ‘guix publish’ cache first and foremost.
>
> Thoughts?

Ah, so that mcron job is kind of a hack to hasten garbage collecting
only *some* items faster than the default policy of 30 days?  And we'd
now avoid deleting selected .drv files while still deleting their
outputs, so in the case something that needs it took more than 2 days to
build, it could lead to having to rebuild the garbage collected outputs?

I'm not sure if we need such a fancy hack with the 100 TiB of data we
now have, but your fix seems reasonable (LGTM!)

> In addition to the mcron job, Cuirass’s own ‘register-gc-roots’
> procedure periodically deletes GC roots older than ‘%gc-roots-ttl’ (30
> days in practice).  That’s okay, except that it would be safer to delete
> GC roots for a .drv if and only if it’s been built already.

Hm.  I wonder if this could explain the other cases we've seen.  It
could be that building a derivation was interrupted or canceled for some
reason, then 30 days elapsed, then was garbage collected, and after
which it doesn't get recreated and we get the error of the missing .drv?

-- 
Thanks,
Maxim




  reply	other threads:[~2023-10-11  3:09 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-18 12:36 bug#54447: cuirass: missing derivation error Mathieu Othacehe
2022-08-10  9:43 ` Maxime Devos
2022-08-10 15:30   ` Maxime Devos
2022-12-10 10:57 ` Ludovic Courtès
2023-10-15 20:21   ` Ludovic Courtès
2023-10-15 20:34     ` Ludovic Courtès
2023-08-22  3:38 ` Maxim Cournoyer
2023-08-22 20:38   ` Ludovic Courtès
2023-08-30 12:17   ` 宋文武 via Bug reports for GNU Guix
2023-10-11  3:21     ` Maxim Cournoyer
2023-10-15 16:45       ` Ludovic Courtès
2023-10-16 13:25         ` Maxim Cournoyer
2023-10-16 17:39           ` Ludovic Courtès
2023-11-20 19:09         ` Maxim Cournoyer
2023-10-10 15:52 ` Ludovic Courtès
2023-10-11  3:08   ` Maxim Cournoyer [this message]
2023-10-15 20:42   ` Ludovic Courtès
2023-10-16 17:44   ` Ludovic Courtès
2024-04-04 21:33     ` Ludovic Courtès
2024-04-14  0:15 ` John Kehayias via Bug reports for GNU Guix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mswpeu03.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=54447@debbugs.gnu.org \
    --cc=guix-sysadmin@gnu.org \
    --cc=ludo@gnu.org \
    --cc=othacehe@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).