[cuirass] Missing dependencies.

  • Open
  • quality assurance status badge
Details
3 participants
  • Maxim Cournoyer
  • Maxime Devos
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Mathieu Othacehe
Severity
normal
Merged with
M
M
Mathieu Othacehe wrote on 6 Oct 2021 10:53
(address . bug-guix@gnu.org)
87sfxeedpb.fsf@gnu.org
Hello,

I noticed that some builds were missing dependencies in the Cuirass web
interface. For instance, compare those two builds of python-git-review:


When looking closer to one dependency, python-pysocks for the build
100035, this command reports the corresponding derivation:

Toggle snippet (4 lines)
guix time-machine --commit=79fbbe5e4a7cd79613d49c0dda51872f2492cc76 -C ~/.config/guix/channels-default.scm -- build --no-grafts python-pysocks -d
/gnu/store/49bprfjvzlfm893622fkmi4jb6msyg2j-python-pysocks-1.7.1.drv

On the other hand, in the Cuirass database, we have:

Toggle snippet (4 lines)
cuirass=# select derivation from jobs left join builds on jobs.build = builds.id where jobs.evaluation = 27768 and name = 'python-pysocks.x86_64-linux';
/gnu/store/pm576s0gi7b8n9bpllmj3kdin0r6dj22-python-pysocks-1.7.1.drv

There are two different derivations which explains why python-pysocks is
not listed as dependency of the build 100035.

While those derivations are different, they have the same output:

Toggle snippet (4 lines)
guix time-machine --commit=79fbbe5e4a7cd79613d49c0dda51872f2492cc76 -C ~/.config/guix/channels-default.scm -- build --no-grafts python-pysocks
/gnu/store/x76mk7rx4hyqk6hngflpx1rrrr82rvmb-python-pysocks-1.7.1

and

Toggle snippet (4 lines)
cuirass=# select path from jobs left join builds on jobs.build = builds.id left join outputs on builds.derivation = outputs.derivation where jobs.evaluation = 27768 and jobs.name = 'python-pysocks.x86_64-linux';
/gnu/store/x76mk7rx4hyqk6hngflpx1rrrr82rvmb-python-pysocks-1.7.1

So, when Cuirass tried to register the
/gnu/store/49bprfjvzlfm893622fkmi4jb6msyg2j-python-pysocks-1.7.1.drv, it
skipped it because another build with the same output already
existed.

Cuirass uses the derivation file names to determine the dependencies and
is thus tricked by this mismatch.

There are two things that are a bit unclear to me:

1. What causes those derivation differences while the output is identical?

2. How we could work-around this issue to have Cuirass list all
dependencies?

Thanks,

Mathieu
M
M
Maxime Devos wrote on 6 Oct 2021 11:36
35fddcc62ad65fb39b5fd54ba7f9ae9999d2db84.camel@telenet.be
Mathieu Othacehe schreef op wo 06-10-2021 om 08:53 [+0000]:
Toggle quote (8 lines)
> [...]
> Cuirass uses the derivation file names to determine the dependencies and
> is thus tricked by this mismatch.
>
> There are two things that are a bit unclear to me:
>
> 1. What causes those derivation differences while the output is identical?

I'd presume changing the source URL of some package (while keeping the hash intact).
That changes fixed-output derivations but keeps the output intact, IIUC.

This hypothesis can be tested by replacing %mirrors by '() in (guix download)
and comparing the derivation and output path of a package using a mirror:// url
before and after.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYV1uDBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ipPAQDc9YDd67mRv4AV19xLmWjSMwfz
ajsWmyLsicU9acumhwD/YUCIwKCVgUHCciaoCUZXSiuHMBpCpzucDMvrOrhNGwk=
=umJ8
-----END PGP SIGNATURE-----


M
M
Maxim Cournoyer wrote on 6 Sep 2023 17:17
control message for bug #51055
(address . control@debbugs.gnu.org)
87r0nb5o1x.fsf@gmail.com
merge 51055 65505
quit
?