Forum Linux.debian/ubuntu golang-1.10/testing segmentation fault

Posté par  . Licence CC By‑SA.
Étiquettes :
1
28
mai
2018

Bonjour,

J'ai voulu testé soundscape et pour cela j'ai installé golang-1.10 dans ma debian testing, ce qui aboutit à l'installation des paquets suivants:

golang-1.10
golang-1.10-doc
golang-1.10-go
golang-1.10-src
golang-doc
golang-go
golang-src

Mon souci est que dès que je tente un go, indépendamment de l'endroit où je le lance dans mon arborescence, je me vois répondre instantanément Segmentation fault quelques soient les arguments accompagnant la commande.
Un backtrace sous gdb go me donne le très instructif:

(gdb) run
Starting program: /usr/bin/go 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xffffffffff600000 in ?? ()
(gdb) backtrace 
#0  0xffffffffff600000 in ?? ()
#1  0x0000000000458443 in ?? ()
#2  0x00007ffff7fec000 in ?? ()
#3  0x0000000000000000 in ?? ()

et un strace me donne ceci:

execve("/usr/bin/go", ["go"], 0x7fff4452aa10 /* 41 vars */) = 0
brk(NULL)                               = 0x1670000
uname({sysname="Linux", nodename="profix", ...}) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=222718, ...}) = 0
mmap(NULL, 222718, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f42de857000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@b\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=138216, ...}) = 0
mmap(NULL, 2217088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f42de44c000
mprotect(0x7f42de465000, 2093056, PROT_NONE) = 0
mmap(0x7f42de664000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f42de664000
mmap(0x7f42de666000, 13440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f42de666000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\33\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1800248, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f42de855000
mmap(NULL, 3906272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f42de092000
mprotect(0x7f42de243000, 2093056, PROT_NONE) = 0
mmap(0x7f42de442000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b0000) = 0x7f42de442000
mmap(0x7f42de448000, 15072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f42de448000
close(3)                                = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f42de852000
arch_prctl(ARCH_SET_FS, 0x7f42de852740) = 0
mprotect(0x7f42de442000, 16384, PROT_READ) = 0
mprotect(0x7f42de664000, 4096, PROT_READ) = 0
mprotect(0x7f42de88e000, 4096, PROT_READ) = 0
munmap(0x7f42de857000, 222718)          = 0
set_tid_address(0x7f42de852a10)         = 21436
set_robust_list(0x7f42de852a20, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f42de451cb0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f42de45df50}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f42de451d50, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f42de45df50}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0x1670000
brk(0x1691000)                          = 0x1691000
sched_getaffinity(0, 8192, [0, 1, 2, 3]) = 64
mmap(0xc000000000, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc000000000
munmap(0xc000000000, 65536)             = 0
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f42de812000
mmap(0xc420000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc420000000
mmap(0xc41fff8000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc41fff8000
mmap(0xc000000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc000000000
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f42de87e000
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xffffffffff600000} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault

Bref, pour ce qui me concerne, rien de très utile.

Une recherche sur bugs.debian.org ou plus largement sur le web ne m'a pas permis de trouver d'autres personnes dans mon cas.

Avez-vous rencontré le même souci ?
Si oui, à votre avis qu'est ce qui pourrait en être la cause et avez-vous trouvez une solution ?

merci

  • # Installer le package gloang-dbg?

    Posté par  . Évalué à 3.

    Bonjour,
    Une piste qui ne t'aidera pas beaucoup, mais pour avoir des info «intéressantes», c'est bien avec gdb que ça se passe mais il te faut installer le paquet «golang-dbg».
    Il est possible que «gdb» ne charge toujours pas les symboles par défaut, il faut voir du côté de la variable debug-file-directory.
    Ainsi tu aurais les noms des fonctions ainsi que les noms de fichier avec numéro de ligne.
    Christophe.

    • [^] # Re: Installer le package gloang-dbg?

      Posté par  . Évalué à 2.

      A moins d'avoir mal cherché, il n'y a pas de paquets avec les debug symbols pour go.

      Ce commentaire passe-t-il les trois tamis de Socrate ? -- je ne moinsse pas les conversations auxquelles je participe

      • [^] # Re: Installer le package gloang-dbg?

        Posté par  . Évalué à 1.

        D'après Qwant (premier résultat), il existe.

        Mais j'avais aussi constaté chez moi (apt search) qu'il n'existe plus, j'avais compté sur le fait que tu aurais plus de «chance» que moi…

        Il ne te reste donc comme solution probablement que de recompiler le package toi-même? Sachant qu'il faudra peut-être modifier les options pour inclure les symboles de debug (puisqu'apparemment ils ne sont pas inclus par défaut), et sachant aussi que tu n'auras peut-être plus non plus le crash… Bref, que du bonheur en perspective :-/
        Je compatis…

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.