installed-os test failing

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Mathieu Othacehe
Severity
important
M
M
Mathieu Othacehe wrote on 4 Jun 2020 16:36
(address . bug-guix@gnu.org)
87img6rj7t.fsf@gnu.org
Hello

The installed-os test is failing because the image closure is (again)
bigger than the allocated 1.4GiB in the test partition.

Toggle snippet (3 lines)
guix size $(./pre-inst-env guix system build gnu/system/examples/bare-bones.tmpl)

reports 1397.3 MiB.

By reverting this commit 0eed77127592323d89f56c215a15374a1aaae110
(introducing an extra glibc to %default-locale-libcs), it drops down to:

1305.5 MiB.

Now multiple options:

* Revert this commit.
* Find other system closure improvements.
* Up the limit to 1.5GiB.

WDYT?

Thanks,

Mathieu
M
M
Mathieu Othacehe wrote on 4 Jun 2020 18:12
(address . 41709@debbugs.gnu.org)
87eequres9.fsf@gnu.org
Toggle quote (8 lines)
> Now multiple options:
>
> * Revert this commit.
> * Find other system closure improvements.
> * Up the limit to 1.5GiB.
>
> WDYT?

Digging a bit more, I discovered multiple culprits in the image closure
size.

* "openssh" is dragging "xauth" which drags some X libraries (but this
does not account for much).

* "sudo" is dragging "python" for about 100MiB.

* "info-reader" is dragging "perl" (and is in fact the same size as
"texinfo" because of a mistake that I introduced with
614a1e3fa2d731d4719f03912b1b87fb4fd309cb) for about 100MiB.

* The switch to non-canonical version of "glibc" and "coreutils" to fix
system cross-compilation in dfc8ccbf5da96a67eb1cade499f0def21e7fdb02 is
also responsible for about 100MiB.

All in all, fixing all of this makes the closure size to drop below 1GiB
which is already a good first step.

I'll try to provide patches soon.

Thanks,

Mathieu
M
M
Mathieu Othacehe wrote on 5 Jun 2020 19:01
(address . 41709@debbugs.gnu.org)
87mu5hmopy.fsf@gnu.org
Toggle quote (5 lines)
> All in all, fixing all of this makes the closure size to drop below 1GiB
> which is already a good first step.
>
> I'll try to provide patches soon.

I also discovered that enabling CONFIG_MODULE_COMPRESS, the size of
linux-libre is reduced by 63%.

This makes the image way lighter.

Toggle snippet (7 lines)
/gnu/store/6p01ki4iwdxp2bmlr2n27hfry3hp7yac-guix-1.1.0-6.da1b79f 477.4 278.3 29.5%
/gnu/store/158nawzghm4lwm7q7ah8zhh7624fw7zb-locale-2.31 91.9 91.9 9.7%
/gnu/store/la3bzdd032892xrm6sq5zz64rzjhp1yg-linux-libre-5.4.44 79.7 79.7 8.4%
...
total: 943.2 MiB

Now, the big source of improvement could be Guix itself (278MiB without
dependencies).

I think we can go further!

Thanks,

Mathieu
L
L
Ludovic Courtès wrote on 6 Jun 2020 15:22
control message for bug #41709
(address . control@debbugs.gnu.org)
878sh0uy5b.fsf@gnu.org
severity 41709 important
quit
L
L
Ludovic Courtès wrote on 6 Jun 2020 15:29
Re: bug#41709: installed-os test failing
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 41709@debbugs.gnu.org)
87y2p0tja6.fsf@gnu.org
Hi!

Mathieu Othacehe <othacehe@gnu.org> skribis:

Toggle quote (11 lines)
> By reverting this commit 0eed77127592323d89f56c215a15374a1aaae110
> (introducing an extra glibc to %default-locale-libcs), it drops down to:
>
> 1305.5 MiB.
>
> Now multiple options:
>
> * Revert this commit.
> * Find other system closure improvements.
> * Up the limit to 1.5GiB.

Let’s just set the ‘locale-libcs’ field in (gnu tests) so that it
contains a single libc. WDYT?

Toggle quote (3 lines)
> * "openssh" is dragging "xauth" which drags some X libraries (but this
> does not account for much).

Yes, but that’s necessary for “ssh -X”, so I think we consciously made
that choice long ago.

Toggle quote (2 lines)
> * "sudo" is dragging "python" for about 100MiB.

Comes from the Python plugin added in
452244e670467afe0e8ccdfb9ca2980d5a3b4694. No idea what it buys us.

Toggle quote (4 lines)
> * "info-reader" is dragging "perl" (and is in fact the same size as
> "texinfo" because of a mistake that I introduced with
> 614a1e3fa2d731d4719f03912b1b87fb4fd309cb) for about 100MiB.

Ah would be nice to fix and add a #:disallowed-references flag there!

Toggle quote (4 lines)
> * The switch to non-canonical version of "glibc" and "coreutils" to fix
> system cross-compilation in dfc8ccbf5da96a67eb1cade499f0def21e7fdb02 is
> also responsible for about 100MiB.

Yeah, that’s the price to pay. :-/

Toggle quote (3 lines)
> I also discovered that enabling CONFIG_MODULE_COMPRESS, the size of
> linux-libre is reduced by 63%.

Woohoo!

Toggle quote (3 lines)
> Now, the big source of improvement could be Guix itself (278MiB without
> dependencies).

Yep, see my recent message on this topic. :-)

Thanks,
Ludo’.
M
M
Mathieu Othacehe wrote on 9 Jun 2020 17:40
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 41709@debbugs.gnu.org)
87bllsnt6n.fsf@gnu.org
Hey,

Toggle quote (3 lines)
> Let’s just set the ‘locale-libcs’ field in (gnu tests) so that it
> contains a single libc. WDYT?

I'll see first if I can get the closure smaller by other means. I think
it would be preferable to keep the tested operating-system as close as
possible to the default one.

Toggle quote (6 lines)
>> * "openssh" is dragging "xauth" which drags some X libraries (but this
>> does not account for much).
>
> Yes, but that’s necessary for “ssh -X”, so I think we consciously made
> that choice long ago.

Ok, I proposed a work around by introducing openssh-sans-x.

Toggle quote (5 lines)
>> * "sudo" is dragging "python" for about 100MiB.
>
> Comes from the Python plugin added in
> 452244e670467afe0e8ccdfb9ca2980d5a3b4694. No idea what it buys us.

Some python bindings to sudo API, but I moved them to a separate
"python" output.

Toggle quote (7 lines)
>
>> * "info-reader" is dragging "perl" (and is in fact the same size as
>> "texinfo" because of a mistake that I introduced with
>> 614a1e3fa2d731d4719f03912b1b87fb4fd309cb) for about 100MiB.
>
> Ah would be nice to fix and add a #:disallowed-references flag there!

In fact there were a #:disallowed-references already, but its argument
was also wrong so it went unnoticed. I fixed all of that on core-updates
branch.

Toggle quote (7 lines)
>
>> * The switch to non-canonical version of "glibc" and "coreutils" to fix
>> system cross-compilation in dfc8ccbf5da96a67eb1cade499f0def21e7fdb02 is
>> also responsible for about 100MiB.
>
> Yeah, that’s the price to pay. :-/

I'd like to re-introduce "canonical-packages", without breaking the
system cross-compilation, by using "let-system". See:


Toggle quote (5 lines)
>> Now, the big source of improvement could be Guix itself (278MiB without
>> dependencies).
>
> Yep, see my recent message on this topic. :-)

Yes, thanks for your first analysis :)

Thanks,

Mathieu
M
M
Mathieu Othacehe wrote on 30 Jul 2020 21:02
(address . 41709-done@debbugs.gnu.org)
878sf0vnan.fsf@gnu.org
Closing this one as the installed-os test has been fixed.

Mathieu
Closed
?