“Repeated allocation of very large block” during ‘guix pull’

  • Open
  • quality assurance status badge
Details
5 participants
  • Janneke Nieuwenhuizen
  • John Kehayias
  • Ludovic Courtès
  • Ludovic Courtès
  • Rostislav Svoboda
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
important
L
L
Ludovic Courtès wrote on 1 Apr 2021 16:00
“Repeated allocation of very large block” during ‘guix pull’
(address . bug-guix@gnu.org)
87v9966r6h.fsf@inria.fr
While running ‘guix pull’, sometime between the actual ‘git pull’ (via
Guile-Git) and channel authentication, I saw the dreaded libgc warning:

Repeated allocation of very large block

I forgot to capture the command output though, and it does not seem to
be reproducible. (This is with a recent Guix,
ca. 9098745b181b3022587a35afd255f7ff1d41ac86.)

Running the command below from a Guix checkout, which authenticates 15+K
commits, isn’t enough to trigger it:

guix git authenticate --cache-key=whatever \
"9edb3f66fd807b096b48283debdcddccfea34bad" \
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"

So it might rather be ‘update-cached-checkout’ that triggers it.

If you experience it, please share the command line and command output!

Ludo’.
L
L
Ludovic Courtès wrote on 15 Jun 2023 23:08
control message for bug #47543
(address . control@debbugs.gnu.org)
87352sv3gk.fsf@gnu.org
severity 47543 important
quit
R
R
Rostislav Svoboda wrote on 20 Sep 2023 09:23
"Repeated allocation of very large block" during `guix pull`
(address . 47543@debbugs.gnu.org)
CAEtmmew-fi7t9dJzN0uLwRt5zzmZsV9iS82cKw30swE=d6yn3w@mail.gmail.com
Hope it will help.
Cheers Bost

$ guix pull --cores=24
Updating channel 'nonguix' from Git repository at
Updating channel 'haskell-and-clojure' from Git repository at
'file:///home/bost/dev/haskell-guix'...
Updating channel 'bost' from Git repository at
'file:///home/bost/dev/guix-packages'...
Updating channel 'guix' from Git repository at
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
Building from these channels:
bost file:///home/bost/dev/guix-packages 251ce7d
haskell-and-clojurefile:///home/bost/dev/haskell-guix a8b30a6
Computing Guix derivation for 'x86_64-linux'... \
nothing to be done


$ guix describe
Generation 707 Sep 20 2023 01:24:32 (current)
bost 251ce7d
repository URL: file:///home/bost/dev/guix-packages
branch: master
commit: 251ce7d9ce4dd2bbc690189b84706368a5f20823
guix 4b3b2e6
branch: master
commit: 4b3b2e63007acee9e3a8c2ea728190480d092c3c
haskell-and-clojure a8b30a6
repository URL: file:///home/bost/dev/haskell-guix
branch: master
commit: a8b30a606f91caabec3cc8dc4b1255a69836554e
nonguix bb184bd
branch: master
commit: bb184bd0a8f91beec3a00718759e96c7828853de

$ guix system describe
Generation 58 Sep 18 2023 14:26:00 (current)
file name: /var/guix/profiles/system-58-link
canonical file name: /gnu/store/l91cqriia6jrkasbqdl2k14shd1rnm3w-system
label: GNU with Linux-Libre 6.4.16
bootloader: grub-efi
root device: UUID: 67ce5d9c-7af1-4435-a2a9-68651ab9a281
kernel: /gnu/store/qhynq8jfskirrn7fj5965ajmrs7zfshc-linux-libre-6.4.16/bzImage
channels:
bost:
repository URL: file:///home/bost/dev/guix-packages
branch: master
commit: 36e44740eefa0aa313c2bb4ab30e5d93ee3e8448
guix:
branch: master
commit: 273709932fa47f6ae56c96564a9415fdbff4a169
haskell-and-clojure:
repository URL: file:///home/bost/dev/haskell-guix
branch: master
commit: a8b30a606f91caabec3cc8dc4b1255a69836554e
nonguix:
branch: master
commit: bb184bd0a8f91beec3a00718759e96c7828853de
configuration file:
/gnu/store/f87bpd2bs8zn09jfcjbinwgffjyjy6ng-configuration.scm

$ guix home describe
Generation 894 Sep 20 2023 01:25:31 (current)
file name: /var/guix/profiles/per-user/bost/guix-home-894-link
canonical file name: /gnu/store/y67m6gf7jvq06f0pnr06s59hz2hb3wf1-home
channels:
bost:
repository URL: file:///home/bost/dev/guix-packages
branch: master
commit: 251ce7d9ce4dd2bbc690189b84706368a5f20823
guix:
branch: master
commit: 4b3b2e63007acee9e3a8c2ea728190480d092c3c
haskell-and-clojure:
repository URL: file:///home/bost/dev/haskell-guix
branch: master
commit: a8b30a606f91caabec3cc8dc4b1255a69836554e
nonguix:
branch: master
commit: bb184bd0a8f91beec3a00718759e96c7828853de
configuration file:
/gnu/store/sz4vw81k5hacngc437w57yqm8zpg8c88-configuration.scm


The two channels specified by file URLs are local copies of my github repos:
R
R
Rostislav Svoboda wrote on 20 Sep 2023 10:02
(address . 47543@debbugs.gnu.org)
CAEtmmexYRrtCqVyWzwgwHKQV+u0V8TfjYOi-Z6Uqq-wWvXh-4A@mail.gmail.com
Some more (hopefully relevant) information:

$ free -h
total used free shared buff/cache available
Mem: 31Gi 12Gi 1.5Gi 299Mi 17Gi 18Gi
Swap: 8.0Gi 450Mi 7.6Gi

$ uname -a
Linux ecke 6.4.16-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
J
J
Janneke Nieuwenhuizen wrote on 22 Sep 2023 19:25
Re: bug#47543: “Repeated allocation of very large block” during ‘guix pull’
(name . Ludovic Courtès)(address . ludovic.courtes@inria.fr)(address . 47543@debbugs.gnu.org)
87pm2aglxm.fsf@gnu.org
Ludovic Courtès writes:

Toggle quote (2 lines)
> If you experience it, please share the command line and command output!

Never seen this before, but here it is...

Toggle snippet (56 lines)
18:55:29 janneke@dundal:~/src/guix/master
$ guix pull --commit=6bd17a0806
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
guix https://git.savannah.gnu.org/git/guix.git 6bd17a0
Computing Guix derivation for 'x86_64-linux'... /Backtrace:
In ./guix/store.scm:
1380:11 19-GC Warning: Repeated allocation of very large block (appr. size 62525440):
May lead to memory leak and poor performance
\GC Warning: Repeated allocation of very large block (appr. size 31264768):
May lead to memory leak and poor performance
/(loop (#<gexp-input #<<program-file> name: "guix-command" gexp: #<gexp (begin (set! %load-extension?> ?) ?)
1293:4 18 (call-with-build-handler #<procedure 7f8fca01e500 at ./guix/store.scm:1333:2 (continue store things mo?> ?)
2168:24 17 (run-with-store #<store-connection 256.99 7f8fef5000a0> #<procedure 7f8fceb426a0 at ./guix/gexp.scm:89?> ?)
In ./guix/gexp.scm:
897:13 16 (_ #<store-connection 256.99 7f8fef5000a0>)
In ./guix/store.scm:
1996:8 15 (_ #<store-connection 256.99 7f8fef5000a0>)
In ./guix/gexp.scm:
299:22 14 (_ #<store-connection 256.99 7f8fef5000a0>)
1180:2 13 (_ #<store-connection 256.99 7f8fcafee820>)
1046:2 12 (_ #<store-connection 256.99 7f8fcafee820>)
892:4 11 (_ #<store-connection 256.99 7f8fcafee820>)
In ./guix/store.scm:
2053:12 10 (_ #<store-connection 256.99 7f8fcafee820>)
1375:6 9 (map/accumulate-builds #<store-connection 256.99 7f8fcafee820> #<procedure 7f8fcc067ca0 at ./guix/stor?> ?)
1380:11 8/GC Warning: Repeated allocation of very large block (appr. size 121376768):
May lead to memory leak and poor performance
-(loop (#<gexp-input #<<computed-file> name: "guix-module-union" gexp: #<gexp (begin (use-modules (g?> ?) ?)
1293:4 7 (call-with-build-handler #<procedure 7f8fcc067c80 at ./guix/store.scm:1333:2 (continue store things mo?> ?)
2168:24 6 (run-with-store #<store-connection 256.99 7f8fcafee820> #<procedure 7f8fcc0b17c0 at ./guix/gexp.scm:89?> ?)
In ./guix/gexp.scm:
897:13 5 (_ #<store-connection 256.99 7f8fcafee820>)
In ./guix/store.scm:
1996:8 4 (_ #<store-connection 256.99 7f8fcafee820>)
In ./guix/gexp.scm:
299:22 3 (_ #<store-connection 256.99 7f8fcafee820>)
In ./guix/store.scm:
2040:38 2 (_ #<store-connection 256.99 7f8fcafee820>)
In ./guix/derivations.scm:
965:17 1 (derivation #<store-connection 256.99 7f8fcafee820> "guix-module-union" "/gnu/store/4gvgcfdiz67wv04ihq?" ?)
In ./guix/store.scm:
1036:9 0 (_ #<store-connection 256.99 7f8fcafee820> "guix-module-union.drv" #vu8(68 101 114 105 118 101 40 91 ?) _)

./guix/store.scm:1036:9: ERROR:
1. &store-protocol-error:
message: "error parsing derivation `/gnu/store/2zb0lb5bkg5868vvwqi6a8nh07p23610-guix-6bd17a080-modules.drv': expected string `Derive(['"
status: 1
guix pull: error: You found a bug: the program '/gnu/store/sv5bgbzisyii7g45c3bd3w8jk59gfvx0-compute-guix-derivation'
failed to compute the derivation for Guix (version: "6bd17a0806ad32d1493ac51a7443276f719c4224"; system: "x86_64-linux";
host version: "445a0359083388b5ee686e6e855f94a3aac5f79c"; pull-version: 1).
Please report the COMPLETE output above by email to <bug-guix@gnu.org>.

[1]19:16:35 janneke@dundal:~/src/guix/master

This seems to be somewhat repeatable, it was the third time in a row
this failed. After the second time, I removed ~/.cache/guix/checkouts.

Also

Toggle snippet (32 lines)
19:20:54 janneke@dundal:~/src/guix/master
$ uname -a
Linux dundal 6.2.12-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
19:20:56 janneke@dundal:~/src/guix/master
$ guix system describe
Generation 141 May 15 2023 22:36:13 (current)
file name: /var/guix/profiles/system-141-link
canonical file name: /gnu/store/w3hnhxdk01fka2lqfjv37khraw2psidh-system
label: GNU with Linux-Libre 6.2.12
bootloader: grub
root device: /dev/mapper/guix
kernel: /gnu/store/0fms1i0n62h3xk9hlmyh7j8pbbcaxdbg-linux-libre-6.2.12/bzImage
channels:
guix:
repository URL: https://git.savannah.gnu.org/git/guix.git
commit: 960647f0161c2c99ea3417d129662181e882cfeb
configuration file: /gnu/store/2cj3gl2z585xn6xy81wramjnqxqzy8yb-configuration.scm
19:21:01 janneke@dundal:~/src/guix/master
$ guix describe
Generation 92 Jul 23 2023 20:35:32 (current)
guix 445a035
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 445a0359083388b5ee686e6e855f94a3aac5f79c
19:21:04 janneke@dundal:~/src/guix/master
$ free -h
total used free shared buff/cache available
Mem: 15Gi 540Mi 12Gi 229Mi 2.0Gi 14Gi
Swap: 15Gi 0B 15Gi


Not my daily driver, wanted to update before testing the new Smart
Hurdloading patch set...

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 23 Sep 2023 13:40
(name . Ludovic Courtès)(address . ludovic.courtes@inria.fr)(address . 47543@debbugs.gnu.org)
87il81f77n.fsf@gnu.org
Janneke Nieuwenhuizen writes:

Hi!

Just a headsup with more information.

Toggle quote (6 lines)
> Ludovic Courtès writes:
>
>> If you experience it, please share the command line and command output!
>
> Never seen this before, but here it is...

[..]

Toggle quote (5 lines)
> ./guix/store.scm:1036:9: ERROR:
> 1. &store-protocol-error:
> message: "error parsing derivation `/gnu/store/2zb0lb5bkg5868vvwqi6a8nh07p23610-guix-6bd17a080-modules.drv': expected string `Derive(['"
> status: 1

This bit, i.e., the fact that `guix pull' failed, was due to store
corruption. Something else that I've also never experienced before.

Toggle quote (5 lines)
> guix pull: error: You found a bug: the program '/gnu/store/sv5bgbzisyii7g45c3bd3w8jk59gfvx0-compute-guix-derivation'
> failed to compute the derivation for Guix (version: "6bd17a0806ad32d1493ac51a7443276f719c4224"; system: "x86_64-linux";
> host version: "445a0359083388b5ee686e6e855f94a3aac5f79c"; pull-version: 1).
> Please report the COMPLETE output above by email to <bug-guix@gnu.org>.

And on that last note, I wonder how apt this massage is, in this
particular case running `guix gc --repair=content' would have been
helpful.

Toggle quote (3 lines)
> This seems to be somewhat repeatable, it was the third time in a row
> this failed. After the second time, I removed ~/.cache/guix/checkouts.

After repairing the store, the `large block' warning was also gone.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 23 Nov 2023 12:42
(address . 47543@debbugs.gnu.org)
87leaod7cf.fsf@gnu.org
Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

Toggle quote (5 lines)
> While running ‘guix pull’, sometime between the actual ‘git pull’ (via
> Guile-Git) and channel authentication, I saw the dreaded libgc warning:
>
> Repeated allocation of very large block

[...]

Toggle quote (2 lines)
> So it might rather be ‘update-cached-checkout’ that triggers it.

I wonder if this was due to the big checkouts we ended up with so far:


Ludo’.
J
J
John Kehayias wrote on 17 Apr 21:56 +0200
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 47543@debbugs.gnu.org)
878r1b226a.fsf@protonmail.com
Hello,

Just hit this warning and went searching to find this report.

On Thu, Nov 23, 2023 at 12:42 PM, Ludovic Courtès wrote:

Toggle quote (17 lines)
> Ludovic Courtès <ludovic.courtes@inria.fr> skribis:
>
>> While running ‘guix pull’, sometime between the actual ‘git pull’ (via
>> Guile-Git) and channel authentication, I saw the dreaded libgc warning:
>>
>> Repeated allocation of very large block
>
> [...]
>
>> So it might rather be ‘update-cached-checkout’ that triggers it.
>
> I wonder if this was due to the big checkouts we ended up with so far:
>
> https://issues.guix.gnu.org/65720
>
> Ludo’.

In my case, just did a guix pull so I am on
2126dab4cd81db4cbde4566d8c638e45a4c0077c.

Pull was fine, but this warning was repeatable on a system reconfigure:

Toggle snippet (60 lines)
? sudo guix system reconfigure ~/.config/guix/config.scm --max-jobs=4 -n
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 135168):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 131072):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 102400):
May lead to memory leak and poor performance
substitute: updating substitutes from 'https://bordeaux-us-east-mirror.cbaines.net/'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
The following derivation would be built:
/gnu/store/r9n8vz4s1n7v3551cphrqy0pqyl8wcv0-corectrl-1.3.5.drv

340.3 MB would be downloaded
? sudo guix system reconfigure ~/.config/guix/config.scm -n
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 122880):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
The following derivation would be built:
/gnu/store/r9n8vz4s1n7v3551cphrqy0pqyl8wcv0-corectrl-1.3.5.drv

340.3 MB would be downloaded
? sudo guix system reconfigure ~/.config/guix/config.scm --max-jobs=4
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance
GC Warning: Repeated allocation of very large block (appr. size 131072):
May lead to memory leak and poor performance
The following derivation will be built:
/gnu/store/r9n8vz4s1n7v3551cphrqy0pqyl8wcv0-corectrl-1.3.5.drv

340.3 MB will be downloaded
adwaita-icon-theme-44.0 904KiB 108.0MiB/s 00:00 ???????????????????? 100.0%
guix substitute: warning: download from 'https://bordeaux-us-east-mirror.cbaines.net/nar/lzip/c2brbsvn75866l81rswb7z8sdpw2dvjr-font-abattis-cantarell-0.303-0.e049149' failed: 404, "Not Found"
retrying download of '/gnu/store/c2brbsvn75866l81rswb7z8sdpw2dvjr-font-abattis-cantarell-0.303-0.e049149' with other substitute URLs...

substitution of
/gnu/store/5in68ily7wjj8jy67kyj8sikwmci894j-ath9k-htc-ar7010-firmware-1.4.0
complete

this last one continued until I killed it to send capture the previous
output and send it.

Toggle snippet (6 lines)
? free -h
total used free shared buff/cache available
Mem: 15Gi 10Gi 3.4Gi 706Mi 2.4Gi 4.8Gi
Swap: 15Gi 4.1Gi 11Gi

But since interrupting the reconfigure, it doesn't give the warning
again. So something happened by actually starting the reconfigure
process...?

I don't think I've ever seen this before. Hope this helps!

John
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 47543@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 47543
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch