Ludovic Courtès writes: Hello! > skribis: > >> Anyway, using this patch 0001 it seems that suppressing the warnings >> works, I no longer get >> >> "GC Warning: Repeated allocation of very large block (appr. size 112 >> KiB):\n\tMay lead to memory leak and poor performance\n" >> >> >> but still get >> >> unexpected build daemon error: stoi > > Damnit. Could you check with rpctrace what the daemon receives? > > I wonder if I misunderstood what the root cause is. TL;DR: Found it, attached is a patch to fix it. Today I spent some time looking into this again, instrumented both daemons with the attached patch for local-store.cc; a "guix copy root@childhurd hello" gives: host: --8<---------------cut here---------------start------------->8--- accepted connection from pid 21474, user janneke 00 nondigit: ` ' [32] 01 read until now: >>>0<<< 00 nondigit: `:' [58] 01 read until now: >>>430<<< --8<---------------cut here---------------end--------------->8--- childhurd: --8<---------------cut here---------------start------------->8--- 5 operations 00 nondigit: `G' [71] 01 read until now: >>><<< 02 nondigit: `G' [71] 03 nondigit: >>>GC Warning: Repeated allocation of very large block (appr. size 112 KiB):<<< 0 operations --8<---------------cut here---------------end--------------->8--- ...you already knew that from the rpctrace log. So, the problem is that our patch doesrn't disable the warnings after all. The guile-launcher has guile-launcher.c: --8<---------------cut here---------------start------------->8--- #if defined __GNU__ /* XXX: On 32-bit GNU/Hurd (i586-gnu), libgc emits "Repeated allocation" warnings that are annoying and interfere with communications between 'guix-daemon' and 'guix authenticate': . Silence them. */ std::cerr << "silencing libgc warnings" << std::endl; GC_set_warn_proc (no_warnings); #endif .. scm_boot_guile (argc, argv, inner_main, 0); --8<---------------cut here---------------end--------------->8--- and then guile's gc.c just undoes that init.c: --8<---------------cut here---------------start------------->8--- scm_i_init_guile (void *base) { .. scm_init_gc (); /* Requires hooks and `get_internal_run_time' */ --8<---------------cut here---------------end--------------->8--- gc.c: --8<---------------cut here---------------start------------->8--- void scm_init_gc () { .. GC_set_warn_proc (scm_gc_warn_proc); --8<---------------cut here---------------end--------------->8--- Doh' So, attached is also a patch for Guix (that I made for Guile) that fixed offloading again for me. Weirdly, I had to use (overload-threshold #f) because my childhurd never falls below 1.0: --8<---------------cut here---------------start------------->8--- root@guixygnu ~# uptime 7:45:28 PM up 35 minutes, 0 users, load averages: 1.00, 1.01, 1.00 --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- 19:25:48 janneke@glimdal:~/src/guix/hurd-team $ ./pre-inst-env guix build --system=i586-gnu -e '(@@ (gnu packages commencement) gnu-make-boot0)' --with-configure-flag=make-boot0=foo=bar The following derivation will be built: /gnu/store/cp1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv process 4454 acquired build slot '/var/guix/offload/localhost:11022/0' normalized load on machine 'localhost' is 1.00 building /gnu/store/cp1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv... guix offload: sending 41 store items (259 MiB) to 'localhost'... [..] @ build-started /gnu/store/cp1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv - i586-gnu /var/log/guix/drvs/cp//1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv.gz 360 [..] @ build-succeeded /gnu/store/cp1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv - retrieving 1 store item from 'localhost'... importing file or directory '/gnu/store/j83d3mzcjw83lcbvyd8hrs6i6ymdqbmc-make-boot0-4.4.1'... found valid signature for '/gnu/store/j83d3mzcjw83lcbvyd8hrs6i6ymdqbmc-make-boot0-4.4.1' registering 1 items done with offloaded '/gnu/store/cp1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv' successfully built /gnu/store/cp1fy0ig5p8d72vnz1vybw2cilii5g88-make-boot0-4.4.1.drv /gnu/store/j83d3mzcjw83lcbvyd8hrs6i6ymdqbmc-make-boot0-4.4.1 --8<---------------cut here---------------end--------------->8--- WDYT? Greetings, Janneke