unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#67250: builtin:git-download capability detection not working for the bordeaux build farm
@ 2023-11-17 21:39 Christopher Baines
  2023-11-20  9:59 ` Simon Tournier
  2023-11-22 10:19 ` Ludovic Courtès
  0 siblings, 2 replies; 6+ messages in thread
From: Christopher Baines @ 2023-11-17 21:39 UTC (permalink / raw)
  To: 67250

[-- Attachment #1: Type: text/plain, Size: 652 bytes --]

The bordeaux build farm depends on computing the derivations on one
machine, then potentially building them on a different machine.

Some of the build machines don't have a new enough guix-daemon that
understands builtin:git-download, so derivations that use this are
sometimes failing (e.g. [1])

1: https://bordeaux.guix.gnu.org/build/10cc5622-6b1f-4f28-ad9a-41cf796d7a15

One potential approach to address this is somehow have the data service
indicate that it wants compatible derivations when computing them,
rather than to have guix do feature detection against the guix-daemon
that is being used at the point the derivations are being computed.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67250: builtin:git-download capability detection not working for the bordeaux build farm
  2023-11-17 21:39 bug#67250: builtin:git-download capability detection not working for the bordeaux build farm Christopher Baines
@ 2023-11-20  9:59 ` Simon Tournier
  2023-11-20 10:29   ` Christopher Baines
  2023-11-22 10:19 ` Ludovic Courtès
  1 sibling, 1 reply; 6+ messages in thread
From: Simon Tournier @ 2023-11-20  9:59 UTC (permalink / raw)
  To: Christopher Baines, 67250

Hi Chris,

On Fri, 17 Nov 2023 at 21:39, Christopher Baines <mail@cbaines.net> wrote:

> The bordeaux build farm depends on computing the derivations on one
> machine, then potentially building them on a different machine.
>
> Some of the build machines don't have a new enough guix-daemon that
> understands builtin:git-download, so derivations that use this are
> sometimes failing (e.g. [1])

Do you mean that the drv file is generated using a new daemon then this
drv file is “offloaded” to another machine using an older daemon and
thus fails to build it?


> One potential approach to address this is somehow have the data service
> indicate that it wants compatible derivations when computing them,
> rather than to have guix do feature detection against the guix-daemon
> that is being used at the point the derivations are being computed.

Other solutions are: downgrade the daemon of one of the machine or
update the daemon of other machines, no?

Why would the latter not be possible?

Cheers
simon




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67250: builtin:git-download capability detection not working for the bordeaux build farm
  2023-11-20  9:59 ` Simon Tournier
@ 2023-11-20 10:29   ` Christopher Baines
  0 siblings, 0 replies; 6+ messages in thread
From: Christopher Baines @ 2023-11-20 10:29 UTC (permalink / raw)
  To: Simon Tournier; +Cc: 67250

[-- Attachment #1: Type: text/plain, Size: 1367 bytes --]


Simon Tournier <zimon.toutoune@gmail.com> writes:

> Hi Chris,
>
> On Fri, 17 Nov 2023 at 21:39, Christopher Baines <mail@cbaines.net> wrote:
>
>> The bordeaux build farm depends on computing the derivations on one
>> machine, then potentially building them on a different machine.
>>
>> Some of the build machines don't have a new enough guix-daemon that
>> understands builtin:git-download, so derivations that use this are
>> sometimes failing (e.g. [1])
>
> Do you mean that the drv file is generated using a new daemon then this
> drv file is “offloaded” to another machine using an older daemon and
> thus fails to build it?

Roughly, yep.

>> One potential approach to address this is somehow have the data service
>> indicate that it wants compatible derivations when computing them,
>> rather than to have guix do feature detection against the guix-daemon
>> that is being used at the point the derivations are being computed.
>
> Other solutions are: downgrade the daemon of one of the machine or
> update the daemon of other machines, no?
>
> Why would the latter not be possible?

It's possible, just difficult. Because with the current guix-daemon, the
build coordinator can only build things that can be GC'd, some machines
deliberately run older daemons to allow building newer things without
hitting this issue.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67250: builtin:git-download capability detection not working for the bordeaux build farm
  2023-11-17 21:39 bug#67250: builtin:git-download capability detection not working for the bordeaux build farm Christopher Baines
  2023-11-20  9:59 ` Simon Tournier
@ 2023-11-22 10:19 ` Ludovic Courtès
  2023-11-28 14:10   ` Simon Tournier
  2023-11-28 16:54   ` Christopher Baines
  1 sibling, 2 replies; 6+ messages in thread
From: Ludovic Courtès @ 2023-11-22 10:19 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 67250

Hi,

Christopher Baines <mail@cbaines.net> skribis:

> The bordeaux build farm depends on computing the derivations on one
> machine, then potentially building them on a different machine.
>
> Some of the build machines don't have a new enough guix-daemon that
> understands builtin:git-download, so derivations that use this are
> sometimes failing (e.g. [1])
>
> 1: https://bordeaux.guix.gnu.org/build/10cc5622-6b1f-4f28-ad9a-41cf796d7a15
>
> One potential approach to address this is somehow have the data service
> indicate that it wants compatible derivations when computing them,
> rather than to have guix do feature detection against the guix-daemon
> that is being used at the point the derivations are being computed.

Would it work for you if we added a keyword argument to
‘open-connection’ in (guix store) that would let you select which
builtins to use?

As in:

  (open-connection
    #:assume-available-builtin-builders '("download"))

Ludo’.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67250: builtin:git-download capability detection not working for the bordeaux build farm
  2023-11-22 10:19 ` Ludovic Courtès
@ 2023-11-28 14:10   ` Simon Tournier
  2023-11-28 16:54   ` Christopher Baines
  1 sibling, 0 replies; 6+ messages in thread
From: Simon Tournier @ 2023-11-28 14:10 UTC (permalink / raw)
  To: Ludovic Courtès, Christopher Baines; +Cc: 67250

Hi,

On Wed, 22 Nov 2023 at 11:19, Ludovic Courtès <ludo@gnu.org> wrote:

> As in:
>
>   (open-connection
>     #:assume-available-builtin-builders '("download"))

Instead, why not check in ’git-fetch’?  Currently, the test is done
against the local daemon, right?

--8<---------------cut here---------------start------------->8---
(define* (git-fetch ref hash-algo hash
                    #:optional name
                    #:key (system (%current-system))
                    guile git)
  "Return a fixed-output derivation that fetches REF, a <git-reference>
object.  The output is expected to have recursive hash HASH of type
HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
  (mlet %store-monad ((builtins (built-in-builders*)))
    (if (member "git-download" builtins)
        (git-fetch/built-in ref hash-algo hash name
                            #:system system)
        (git-fetch/in-band ref hash-algo hash name
                           #:system system
                           #:guile guile
                           #:git git))))
--8<---------------cut here---------------end--------------->8---

For example, why not a test as:

    (if (and SOMETHING
             (member "git-download" builtins))

And this SOMETHING could be a global variable, as
%assume-builtin-builder, set to true by default and turn to false with
an environment variable, as GUIX_ASSUME_BUILTIN.


Cheers,
simon





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#67250: builtin:git-download capability detection not working for the bordeaux build farm
  2023-11-22 10:19 ` Ludovic Courtès
  2023-11-28 14:10   ` Simon Tournier
@ 2023-11-28 16:54   ` Christopher Baines
  1 sibling, 0 replies; 6+ messages in thread
From: Christopher Baines @ 2023-11-28 16:54 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 67250

[-- Attachment #1: Type: text/plain, Size: 1184 bytes --]


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

> Hi,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> The bordeaux build farm depends on computing the derivations on one
>> machine, then potentially building them on a different machine.
>>
>> Some of the build machines don't have a new enough guix-daemon that
>> understands builtin:git-download, so derivations that use this are
>> sometimes failing (e.g. [1])
>>
>> 1: https://bordeaux.guix.gnu.org/build/10cc5622-6b1f-4f28-ad9a-41cf796d7a15
>>
>> One potential approach to address this is somehow have the data service
>> indicate that it wants compatible derivations when computing them,
>> rather than to have guix do feature detection against the guix-daemon
>> that is being used at the point the derivations are being computed.
>
> Would it work for you if we added a keyword argument to
> ‘open-connection’ in (guix store) that would let you select which
> builtins to use?
>
> As in:
>
>   (open-connection
>     #:assume-available-builtin-builders '("download"))

Yep, that would at least allow freezing the available builtins going
forward and separating it from the running daemon.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-11-28 16:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-17 21:39 bug#67250: builtin:git-download capability detection not working for the bordeaux build farm Christopher Baines
2023-11-20  9:59 ` Simon Tournier
2023-11-20 10:29   ` Christopher Baines
2023-11-22 10:19 ` Ludovic Courtès
2023-11-28 14:10   ` Simon Tournier
2023-11-28 16:54   ` Christopher Baines

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).