Problems building the up-to-date "devel" manual for the website

  • Done
  • quality assurance status badge
Details
4 participants
  • Leo Famulari
  • Ludovic Courtès
  • Maxim Cournoyer
  • Mathieu Othacehe
Owner
unassigned
Submitted by
Leo Famulari
Severity
normal
L
L
Leo Famulari wrote on 26 Mar 2021 23:36
(address . bug-guix@gnu.org)
YF5h5v2CkGTl1Xr5@jasmine.lan
I noticed that the "devel" version of the online manual, which is
supposed to stay up to date, has not been updated since March 16, 2021:


There were some problems related to the recent guile-lib update, which
broke the build scripts in 'doc/build.scm', but that should be fixed
now.

I tried building it with `guix build -f doc/build.scm`, and it crashed
with a segmentation fault while building guix-translated-texinfo.drv,
with this message:

"mmap(PROT_NONE) failed"

I tried again, with --max-jobs=1, and it succeeded. So, maybe we just
need to update and reconfigure ci.guix.gnu.org, and try again.

Here is what I am working with:

------
$ guix describe
Generation 10 Mar 26 2021 20:11:33 (current)
guix e8337f1
commit: e8337f1e45b57035c6e5d45133aa9412d4e5e882
------

And, I'm building 'doc/build.scm' from that same commit.
L
L
Leo Famulari wrote on 1 Apr 2021 23:21
(address . 47428@debbugs.gnu.org)
YGY5ahTUzrIOEIGC@jasmine.lan
This problem is still there. It's breaking the building of the primary
manual, the devel manual, and the cookbook, both for HTML and PDF
outputs.

There are details in /var/log/mcron.log on the server.

Basically, guile-html-index-en builds are failing. For example,
/gnu/store/cydvkyxdkkg7k9n04miy238q8040c28q-guile-html-index-en.drv. The
build log contains this:

------
$ zcat /var/log/guix/drvs/cy/dvkyxdkkg7k9n04miy238q8040c28q-guile-html-index-en.drv.gz
Backtrace:
4 (primitive-load "/gnu/store/g5xbrrd5llv5lpsgibqbwjymxjm?")
In ice-9/eval.scm:
619:8 3 (_ #f)
191:27 2 (_ #f)
223:20 1 (proc #<directory (guile-user) 7fffefbabf00>)
In unknown file:
0 (%resolve-variable (7 . %strict-tokenizer?) #<directory?>)

ERROR: In procedure %resolve-variable:
Unbound variable: %strict-tokenizer?
------
M
M
Mathieu Othacehe wrote on 2 Apr 2021 09:46
Re: bug#47428: Problems building the up-to-date "devel" manual for the website
(name . Leo Famulari)(address . leo@famulari.name)(address . 47428@debbugs.gnu.org)
87zgyhgmcc.fsf@gnu.org
Hello Leo,

Toggle quote (3 lines)
> ERROR: In procedure %resolve-variable:
> Unbound variable: %strict-tokenizer?

This variable is provided by guile-lib@0.2.7 while this derivation uses
guile-lib@0.2.6.1 from guix-1.2.0-17.ec7fb66.

I have restarted mcron which now uses guix-1.2.0-18.6e7ba45 and
guile-lib@0.2.7.

However, guile-lib@0.2.7 fails to build:

Toggle snippet (20 lines)
MAKEINFO guile-library.info
/tmp/guix-build-guile-lib-0.2.7.drv-0/guile-lib-0.2.7/build-aux/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.
You should only need it if you modified a '.texi' file, or
any other file indirectly affecting the aspect of the manual.
You might want to install the Texinfo package:
<https://www.gnu.org/software/texinfo/>
The spurious makeinfo call might also be the consequence of
using a buggy 'make' (AIX, DU, IRIX), in which case you might
want to install GNU make:
<https://www.gnu.org/software/make/>
make[1]: *** [Makefile:415: guile-library.info] Error 127
make[1]: Leaving directory '/tmp/guix-build-guile-lib-0.2.7.drv-0/guile-lib-0.2.7/doc'
make: *** [Makefile:479: all-recursive] Error 1
command "make" "-j" "16" "GUILE_AUTO_COMPILE=0" failed with status 2
builder for `/gnu/store/prx66i4jvs445g82gkc5sv7p7hhf27ba-guile-lib-0.2.7.drv' failed with exit code 1
@ build-failed /gnu/store/prx66i4jvs445g82gkc5sv7p7hhf27ba-guile-lib-0.2.7.drv - 1 builder for `/gnu/store/prx66i4jvs445g82gkc5sv7p7hhf27ba-guile-lib-0.2.7.drv' failed with exit code 1
derivation '/gnu/store/prx66i4jvs445g82gkc5sv7p7hhf27ba-guile-lib-0.2.7.drv' offloaded to '141.80.167.1

Mathieu
M
M
Mathieu Othacehe wrote on 2 Apr 2021 10:43
(name . Leo Famulari)(address . leo@famulari.name)(address . 47428@debbugs.gnu.org)
87v995gjqe.fsf@gnu.org
Toggle quote (3 lines)
> MAKEINFO guile-library.info
> /tmp/guix-build-guile-lib-0.2.7.drv-0/guile-lib-0.2.7/build-aux/missing: line 81: makeinfo: command not found

Looks like the devel manual generation is fixed. The guile-lib@0.2.7
build failure above only happens when generating the stable manual.

In that case, doc/build.scm uses guile-lib/htmlprag-fixed instead of the
plain guile-lib like on master (since
25db3b2f8bb4a18e9405d2cd32aa899e0007f236).

This causes the build failure. However, we do not have this makeinfo
error on the master guile-lib. That's because the docs are not compiled
for a reason I don't understand.

When running manually "make all" from the build directory, I experience
the same error:

Toggle snippet (4 lines)
MAKEINFO guile-library.info
/tmp/guix-build-guile-lib-0.2.7.drv-0/guile-lib-0.2.7/build-aux/missing: line 81: makeinfo: command not found

that is solved by adding "texinfo" to the native-inputs.

Mathieu
M
M
Mathieu Othacehe wrote on 2 Apr 2021 11:21
(name . Leo Famulari)(address . leo@famulari.name)(address . 47428@debbugs.gnu.org)
87o8exghyo.fsf@gnu.org
Toggle quote (4 lines)
> This causes the build failure. However, we do not have this makeinfo
> error on the master guile-lib. That's because the docs are not compiled
> for a reason I don't understand.

Ok so I finally understand sorry for the spamming. Guile-lib contains
a pre-compiled docs/guile-library.info. This means that the "doc" target
is not run.

However, when the 1.2.0 guile-lib/htmlprag-fixed inherits from the
recent guile-lib@0.2.7, it modifies the sources, causing a doc rebuild,
failing because texinfo is missing.

I have cherry-picked 25db3b2f8bb4a18e9405d2cd32aa899e0007f236 on the
1.2.0 branch to fix it.

There's another error though:

Toggle snippet (7 lines)
). Please consider running po4a-updatepo to refresh it.
Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
). Please consider running po4a-updatepo to refresh it.
mmap(PROT_NONE) failed
builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)

Thanks,

Mathieu
M
M
Mathieu Othacehe wrote on 2 Apr 2021 11:33
(name . Leo Famulari)(address . leo@famulari.name)(address . 47428-done@debbugs.gnu.org)
87k0plghdm.fsf@gnu.org
Toggle quote (6 lines)
> ). Please consider running po4a-updatepo to refresh it.
> Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
> ). Please consider running po4a-updatepo to refresh it.
> mmap(PROT_NONE) failed
> builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)

I worked around it by building this derivation on one core. Looks like
the cookbook, website, manual and devel manual are now building fine.

Closing this one,

Thanks,

Mathieu
Closed
L
L
Ludovic Courtès wrote on 2 Apr 2021 21:00
(name . Mathieu Othacehe)(address . othacehe@gnu.org)
87h7kozf2v.fsf@gnu.org
Hi Mathieu,

Thanks for fixing this!

Mathieu Othacehe <othacehe@gnu.org> skribis:

Toggle quote (8 lines)
> There's another error though:
>
> ). Please consider running po4a-updatepo to refresh it.
> Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
> ). Please consider running po4a-updatepo to refresh it.
> mmap(PROT_NONE) failed
> builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)

I worked around it in 98750a9d9967b84a077735a2e4e6d5526256a5fd by
limiting the number of threads, but that seems to be insufficient.

At any rate, all the manuals are now up-to-date on berlin, meaning that
this particular bug wasn’t hit there.

Ludo’.
L
L
Leo Famulari wrote on 2 Apr 2021 23:08
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 47428-done@debbugs.gnu.org)
YGeH0bKD0FyGc+C3@jasmine.lan
On Fri, Apr 02, 2021 at 11:33:57AM +0200, Mathieu Othacehe wrote:
Toggle quote (12 lines)
>
> > ). Please consider running po4a-updatepo to refresh it.
> > Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
> > ). Please consider running po4a-updatepo to refresh it.
> > mmap(PROT_NONE) failed
> > builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)
>
> I worked around it by building this derivation on one core. Looks like
> the cookbook, website, manual and devel manual are now building fine.
>
> Closing this one,

Awesome, thanks for your work!
Closed
L
L
Leo Famulari wrote on 21 Apr 2021 17:56
(name . Mathieu Othacehe)(address . othacehe@gnu.org)(address . 47428-done@debbugs.gnu.org)
YIBLNgkTJyKc+J6i@jasmine.lan
On Fri, Apr 02, 2021 at 11:33:57AM +0200, Mathieu Othacehe wrote:
Toggle quote (10 lines)
>
> > ). Please consider running po4a-updatepo to refresh it.
> > Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
> > ). Please consider running po4a-updatepo to refresh it.
> > mmap(PROT_NONE) failed
> > builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)
>
> I worked around it by building this derivation on one core. Looks like
> the cookbook, website, manual and devel manual are now building fine.

The problem happened again.

How can we make sure this derivation is always single-threaded?
Closed
M
M
Maxim Cournoyer wrote on 7 Jul 2021 20:52
(name . Leo Famulari)(address . leo@famulari.name)
87czru9csu.fsf@gmail.com
Leo Famulari <leo@famulari.name> writes:

Toggle quote (15 lines)
> On Fri, Apr 02, 2021 at 11:33:57AM +0200, Mathieu Othacehe wrote:
>>
>> > ). Please consider running po4a-updatepo to refresh it.
>> > Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
>> > ). Please consider running po4a-updatepo to refresh it.
>> > mmap(PROT_NONE) failed
>> > builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)
>>
>> I worked around it by building this derivation on one core. Looks like
>> the cookbook, website, manual and devel manual are now building fine.
>>
>> Closing this one,
>
> Awesome, thanks for your work!

I've pushed this with commit af2d6ec092 to master:

modified guix/self.scm
@@ -410,7 +410,10 @@ a list of extra files, such as '(\"contributing\")."
;; Limit thread creation by 'n-par-for-each'. Going beyond can
;; lead libgc 8.0.4 to abort with:
;; mmap(PROT_NONE) failed
- (min (parallel-job-count) 4))
+ ;;
+ ;; FIXME: The above error would still happen when using only 4
+ ;; build jobs, so disable parallelism entirely for the time being.
+ (min (parallel-job-count) 1))
(mkdir #$output)
(copy-recursively #$documentation "."

To guard about the occasional failures we were still hitting building
the latest manuals for the website.

It won't become effective until the 'guix' used by the berlin gets
updated though.

Closing,

Maxim
Closed
L
L
Ludovic Courtès wrote on 8 Jul 2021 09:31
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
875yxlmfcs.fsf_-_@gnu.org
Hi!

help-debbugs@gnu.org (GNU bug Tracking System) skribis:

Toggle quote (36 lines)
> Leo Famulari <leo@famulari.name> writes:
>
>> On Fri, Apr 02, 2021 at 11:33:57AM +0200, Mathieu Othacehe wrote:
>>>
>>> > ). Please consider running po4a-updatepo to refresh it.
>>> > Your input po file ./guix-manual.de.po seems outdated (The amount of entries differ between files: 10012 is not 325
>>> > ). Please consider running po4a-updatepo to refresh it.
>>> > mmap(PROT_NONE) failed
>>> > builder for `/gnu/store/86gnwxxw7lfkifaal6fhflmkn3fczyhf-guix-translated-texinfo.drv' failed due to signal 11 (Segmentation fault)
>>>
>>> I worked around it by building this derivation on one core. Looks like
>>> the cookbook, website, manual and devel manual are now building fine.
>>>
>>> Closing this one,
>>
>> Awesome, thanks for your work!
>
> I've pushed this with commit af2d6ec092 to master:
>
> modified guix/self.scm
> @@ -410,7 +410,10 @@ a list of extra files, such as '(\"contributing\")."
> ;; Limit thread creation by 'n-par-for-each'. Going beyond can
> ;; lead libgc 8.0.4 to abort with:
> ;; mmap(PROT_NONE) failed
> - (min (parallel-job-count) 4))
> + ;;
> + ;; FIXME: The above error would still happen when using only 4
> + ;; build jobs, so disable parallelism entirely for the time being.
> + (min (parallel-job-count) 1))
>
> (mkdir #$output)
> (copy-recursively #$documentation "."
>
> To guard about the occasional failures we were still hitting building
> the latest manuals for the website.

FWIW, the map(PROT_NONE) issue was (I think) fixed by
0aef94e7bcbd272720f14c5343f74da5201ef90a (in May), itself a followup to
47d48f0c43c13c0b43bc3e37b6239efd4bf2f74c, so I think the comment is
stale.

Now, berlin’s mcron jobs are supposedly running a newer Guix:

Toggle snippet (7 lines)
ludo@berlin ~$ sudo herd schedule mcron |grep update-guix-manual-devel |sort -u
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
ludo@berlin ~$ guix gc -R /gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel |grep guix
/gnu/store/p9di786py35m4kxszf466wcla6jvq96h-guix-1.3.0-3.50dfbbf
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel

Am I right that the error that we see now is not “mmap(PROT_NONE)” but
something else?

Thanks,
Ludo’.
M
M
Maxim Cournoyer wrote on 8 Jul 2021 14:51
(name . Ludovic Courtès)(address . ludo@gnu.org)
87tul53r62.fsf@gmail.com
Hello,

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

[...]

Toggle quote (33 lines)
>> modified guix/self.scm
>> @@ -410,7 +410,10 @@ a list of extra files, such as '(\"contributing\")."
>> ;; Limit thread creation by 'n-par-for-each'. Going beyond can
>> ;; lead libgc 8.0.4 to abort with:
>> ;; mmap(PROT_NONE) failed
>> - (min (parallel-job-count) 4))
>> + ;;
>> + ;; FIXME: The above error would still happen when using only 4
>> + ;; build jobs, so disable parallelism entirely for the time being.
>> + (min (parallel-job-count) 1))
>>
>> (mkdir #$output)
>> (copy-recursively #$documentation "."
>>
>> To guard about the occasional failures we were still hitting building
>> the latest manuals for the website.
>
> FWIW, the map(PROT_NONE) issue was (I think) fixed by
> 0aef94e7bcbd272720f14c5343f74da5201ef90a (in May), itself a followup to
> 47d48f0c43c13c0b43bc3e37b6239efd4bf2f74c, so I think the comment is
> stale.
>
> Now, berlin’s mcron jobs are supposedly running a newer Guix:
>
> ludo@berlin ~$ sudo herd schedule mcron |grep update-guix-manual-devel |sort -u
> /gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
> ludo@berlin ~$ guix gc -R /gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel |grep guix
> /gnu/store/p9di786py35m4kxszf466wcla6jvq96h-guix-1.3.0-3.50dfbbf
> /gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
>
> Am I right that the error that we see now is not “mmap(PROT_NONE)” but
> something else?

Sadly, the error is still the same, even using guix in my tree (master):

Toggle snippet (5 lines)
mmap(PROT_NONE) failed
builder for `/gnu/store/f8fdzi1hp7b3ln2zz6z87p3cj3gf0ac5-guix-translated-texinfo.drv'
failed due to signal 11 (Segmentation fault)

So the comment is still valid, I'm afraid :-/.

Thanks,

Maxim
L
L
Ludovic Courtès wrote on 9 Jul 2021 17:36
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87wnpzfqif.fsf@gnu.org
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (2 lines)
> Ludovic Courtès <ludo@gnu.org> writes:

[...]

Toggle quote (5 lines)
>> FWIW, the map(PROT_NONE) issue was (I think) fixed by
>> 0aef94e7bcbd272720f14c5343f74da5201ef90a (in May), itself a followup to
>> 47d48f0c43c13c0b43bc3e37b6239efd4bf2f74c, so I think the comment is
>> stale.

[...]

Toggle quote (8 lines)
> Sadly, the error is still the same, even using guix in my tree (master):
>
> mmap(PROT_NONE) failed
> builder for `/gnu/store/f8fdzi1hp7b3ln2zz6z87p3cj3gf0ac5-guix-translated-texinfo.drv'
> failed due to signal 11 (Segmentation fault)
>
> So the comment is still valid, I'm afraid :-/.

TL;DR: I pushed another fix; gory explanations follow.

That’s from “make as-derivation”? What does this say:

guix gc --references /gnu/store/f8fdzi1hp7b3ln2zz6z87p3cj3gf0ac5-guix-translated-texinfo.drv \
| grep guile-3.0

?

Looking at libgc, the “mmap(PROT_NONE) failed” message is guarded by
#ifdef USE_MUNMAP. Since (@ (gnu packages guile) guile-3.0-latest) uses
(@ (gnu packages bdw-gc) libgc/disable-munmap), it shouldn’t be possible
to see that message:

Toggle snippet (11 lines)
$ strings $(guix build -e '(@ (gnu packages bdw-gc) libgc/disable-munmap)' |grep -e [0-9]$)/lib/libgc.so |grep PROT_NONE
$ echo $?
1
$ guix describe
Generacio 187 Jul 09 2021 12:07:58 (nuna)
guix b182121
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: b182121458c0126a05a41fec78a4f42472ba8081

Let’s see what happens on berlin:

Toggle snippet (63 lines)
ludo@berlin ~/tmp$ sudo herd schedule mcron |grep manual-devel
Password:
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel
ludo@berlin ~/tmp$ sudo su - static-web-site -c /gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a574n4-update-guix-manual-devel

building manual from work tree around commit 4236b8586d9a644d6521c8303863125439aabce8, 9 July 2021
The following derivations will be built:
/gnu/store/bpwr5awf74cixbgjvz2pqdflm3awvjkj-guix-manual.drv
/gnu/store/8xd3cig2iqy01kdxmcxwj70vfwhbkslb-html-indexes.drv
/gnu/store/91nzqswih459bx3b3sc4pwblrqng7h0m-guix-html-manual-highlighted.drv
/gnu/store/119k1wz7fwylawgvgrb4n9qdslfkqmqq-guix-html-manual.drv
/gnu/store/qk96yrhyr0mxkyab7z9qi3rml6vfnrii-texinfo-manual-source.drv
/gnu/store/mykrlk2nfrs4bhypj94k0k1w610d1r0i-guix-translated-texinfo.drv
/gnu/store/2gq0svljs882azy6v1izill3hy42rxi2-guix-html-index-de.drv
/gnu/store/m5rld6plv31w0xlg356370lzyf47k77x-guix-html-manual-highlighted.drv
/gnu/store/2sdcnjsg5nlyg57c0xvqllssns8hnjhr-guix-html-index-fr.drv
/gnu/store/52963c7phbm2s2wzynblmgm1j4v9y3ns-guix-html-index-ru.drv
/gnu/store/56g425snxx2ya6cx2hcxpvb391cj7n73-guix-html-index-ru.drv
/gnu/store/i1z5xazp71j17llk63q40n8i7aninbi0-guix-html-index-zh-cn.drv
/gnu/store/isndvz5csv97fmmfcsga13fqlpir576c-guix-html-index-es.drv
/gnu/store/l68hi1pj303wfr18pq7q1xxhaly5va6i-guix-html-index-de.drv
/gnu/store/nnpyprm04rhwhdd6qvmbd1rn96lnz2jb-guix-html-index-en.drv
/gnu/store/nzy2wb5ci0mn0zbppfhcq96j30km5gq7-guix-html-index-en.drv
/gnu/store/rspygvlzr4v5bfx1a71iijxim8vdpp69-guix-html-index-fr.drv
/gnu/store/varb0z4kscaqizvf462wvjqw89jnmkj2-guix-html-index-es.drv
/gnu/store/zc6hjfqil3h1qv9wfn6limkzs4r31b92-guix-html-index-zh-cn.drv
/gnu/store/ng573kmh8jdqjdgl25rc4f8an1d9lf3w-guix-pdf-manual.drv
building path(s) `/gnu/store/23cklqq6i4h7rrxsskh5nngd7p7718na-html-indexes'
builder for `/gnu/store/s871bvkh1spgrpmms8323pa32a3arfmc-guix-translated-texinfo' failed previously (cached)
cannot build derivation `/gnu/store/qk96yrhyr0mxkyab7z9qi3rml6vfnrii-texinfo-manual-source.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/119k1wz7fwylawgvgrb4n9qdslfkqmqq-guix-html-manual.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/ng573kmh8jdqjdgl25rc4f8an1d9lf3w-guix-pdf-manual.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/bpwr5awf74cixbgjvz2pqdflm3awvjkj-guix-manual.drv': 1 dependencies couldn't be built
Backtrace:
7 (primitive-load "/gnu/store/xsmjh2k3pjx6cv0rvkkqw8jsj8a…")
In ice-9/boot-9.scm:
1752:10 6 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
646:37 5 (thunk)
2076:24 4 (run-with-store #<store-connection 256.99 7f146fb8f2d0> …)
In unknown file:
3 (_ #<procedure 7f146f865b60 at ice-9/eval.scm:330:13 ()> …)
In guix/store.scm:
1945:38 2 (_ #<store-connection 256.99 7f147ca41460>)
1383:15 1 (_ #<store-connection 256.99 7f147ca41460> _ _)
In ice-9/boot-9.scm:
1685:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
1. &store-protocol-error:
message: "build of `/gnu/store/bpwr5awf74cixbgjvz2pqdflm3awvjkj-guix-manual.drv' failed"
status: 100
ludo@berlin ~/tmp$ zcat $(guix build --log-file /gnu/store/s871bvkh1spgrpmms8323pa32a3arfmc-guix-translated-texinfo) | tail -3
Your input po file ./guix-manual.es.po seems outdated (The amount of entries differ between files: 10633 is not 453
). Please consider running po4a-updatepo to refresh it.
mmap(PROT_NONE) failed

How come? Reason is that this mcron job uses an old Guile, without
‘--disable-munmap’:

Toggle snippet (4 lines)
ludo@berlin ~/tmp$ guix gc --references $(guix gc --derivers /gnu/store/s871bvkh1spgrpmms8323pa32a3arfmc-guix-translated-texinfo) | grep guile-3.0
/gnu/store/b0syji3mdp78sz1a4q8s3mnd8hdbkp0h-guile-3.0.2.drv

This, in turn, is because ‘doc/build.scm’ uses (default-guile), which is
3.0.2 as shown above (on ‘master’). (guix self) itself forces use of
‘guile-3.0-latest’ by calling ‘set-guile-for-build’ in ‘compiled-guix’,
but ‘doc/build.scm’ doesn’t do that.

Based on this investigation, I pushed these three commits:

cf88c967af self: Remove stale comment about "mmap(PROT_NONE) failed" crash.
609e66e45f Revert "self: Build translated manuals with a single process."
580a031e7d doc: Build manual translations with 'guile-3.0-latest'.

I think it fixes the problem For Good™. Normally, berlin shouldn’t need
to be reconfigured; it should built the manual Just Fine next time.
We’ll soon know…

Thanks,
Ludo’.
M
M
Maxim Cournoyer wrote on 10 Jul 2021 05:56
(name . Ludovic Courtès)(address . ludo@gnu.org)
8735smvn2e.fsf@gmail.com
Hi Ludovic!

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

Toggle quote (25 lines)
> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>
> [...]
>
>>> FWIW, the map(PROT_NONE) issue was (I think) fixed by
>>> 0aef94e7bcbd272720f14c5343f74da5201ef90a (in May), itself a followup to
>>> 47d48f0c43c13c0b43bc3e37b6239efd4bf2f74c, so I think the comment is
>>> stale.
>
> [...]
>
>> Sadly, the error is still the same, even using guix in my tree (master):
>>
>> mmap(PROT_NONE) failed
>> builder for `/gnu/store/f8fdzi1hp7b3ln2zz6z87p3cj3gf0ac5-guix-translated-texinfo.drv'
>> failed due to signal 11 (Segmentation fault)
>>
>> So the comment is still valid, I'm afraid :-/.
>
> TL;DR: I pushed another fix; gory explanations follow.

Woohoo! Thank you for the fix, as well as the explanations. It was an
interesting read :-).

Thanks,

Maxim
?