Subject: bug#19780: 13 failing tests

From: Ricardo Wurmus <[email-masked]>
Date: Wed, 11 Feb 2015 12:06:58 +0100

Ludovic Courtès writes:

> Ricardo Wurmus <[email-masked]> skribis:
>
>> I applied the patch and did as instructed, but even after half an hour
>> there is no more progress.  I'll leave this running over night, hoping
>> for a segfault when I return to it the next morning.
>
> Hmm could you restore the ‘trap’ line in ‘test-env’?  That’s probably
> the reason why it doesn’t complete.

I restored the trap line, but as long as GDB is attached there's no
progress.  When I do not "set detach-on-fork off" I observe the
segfault, and I also see it when I disconnect GDB.

> Still, that means that the SIGSEGV doesn’t show up when running under
> GDB.  :-/
>
> Alternately, could you change ‘test-env’ so that guix-daemon runs under
> Valgrind?

(NOTE: I'm not a very experienced user of debuggers; I'm only familiar
with the basics as my needs haven't been very demanding in the past.)

I tried to run the daemon under valgrind.  Instead of modifying test-env
like this:

    "/localhome/rwurmus-tmp/guix/pre-inst-env"                          \
        valgrind --trace-children=yes \
        "/localhome/rwurmus-tmp/guix/guix-daemon" --disable-chroot      \
        --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL" &

I injected valgrind in the exec line of pre-inst-env, like this:

    exec valgrind --trace-children=yes "$@"

Modifying test-env only gave me errors about the socket file not being
found, so I did not spend much more time investigating it.  With the
modified pre-inst-env, however, valgrind produced a very long log, which
I attached below.  The interesting part is probably this section near
the end:

~~~~~~~~~~~~~~~~~~~~~~~
==9202== Jump to the invalid address stated on the next line
==9202==    at 0x0: ???
==9202==    by 0x5308B23: __pthread_initialize_minimal (nptl-init.c:467)
==9202==    by 0x5307408: ??? (in /usr/lib64/libpthread-2.17.so)
==9202==    by 0x50F9F5F: ??? (in /usr/lib64/libnss_sss.so.2)
==9202==    by 0x4F56F1: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4F5836: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DBB59: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4D9E65: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DB476: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DDA86: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4D9E65: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DD8D6: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==9202== 
==9202== 
==9202== Process terminating with default action of signal 11 (SIGSEGV)
==9202==  Bad permissions for mapped region at address 0x0
==9202==    at 0x0: ???
==9202==    by 0x5308B23: __pthread_initialize_minimal (nptl-init.c:467)
==9202==    by 0x5307408: ??? (in /usr/lib64/libpthread-2.17.so)
==9202==    by 0x50F9F5F: ??? (in /usr/lib64/libnss_sss.so.2)
==9202==    by 0x4F56F1: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4F5836: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DBB59: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4D9E65: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DB476: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DDA86: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4D9E65: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
==9202==    by 0x4DD8D6: ??? (in /localhome/rwurmus-tmp/guix/test-tmp/store/nakn26p520psw7jawgfv74wm34dn6kxj-bash)
~~~~~~~~~~~~~~~~~~~~~~~

libnss_sss is used because on my workstation we use sssd for user
authentication with LDAP.  On a possibly related note, Emacs installed
through Guix on this Fedora 21 workstation fails to find my user's home
directory (which is mounted over NFS).  Upon starting Emacs I get this
error: "Error (initialization): User rwurmus has no home directory";
"--debug-init" does not make any difference.  HOME is set, of course.  I
wonder if this is a helpful clue.

~~ Ricardo