Pagina 1 di 1

Seg. fault in slack64 multilib con yoda_soccer

Inviato: ven 10 giu 2011, 19:09
da d3k
Ciao a tutti,
ho installato le multilib come da meravigliosa wiki nel thread sticky a top di pagina.
A parte tutto quello che ero riuscito a ricompilare, il motivo per installare la multilib erano sostanzialmente 3: plugin di Citrix, yoda_soccer e skype (anche se ora è stato comprato da Microsoft... :cry:)
Vengo al punto. Yoda_soccer non parte e va in segmentation fault (return code 139 che credo sia segmentation violation, cioè ha scritto dove non doveva), ma le librerie sembrerebbero a posto e come da output seguente vengono tutte risolte a 32 bit:

Codice: Seleziona tutto

root@darkstar:~/Downloads/yoda_soccer_076# ldd yoda_soccer|gawk '{ print $3 }'|xargs file -L
(0xffffe000):                           ERROR: cannot open `(0xffffe000)' (No such file or directory)
/usr/lib/libX11.so.6:                   ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libGL.so.1:                    ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libGLU.so.1:                   ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libXxf86vm.so.1:               ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libfreetype.so.6:              ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libstdc++.so.6:                ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/lib/libm.so.6:                         ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
/usr/lib/libgcc_s.so.1:                 ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/lib/libpthread.so.0:                   ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
/lib/libc.so.6:                         ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
/lib/libdl.so.2:                        ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
/usr/lib/libxcb.so.1:                   ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libXau.so.6:                   ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libXdmcp.so.6:                 ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libnvidia-tls.so.270.41.06:    ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libnvidia-glcore.so.270.41.06: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libXext.so.6:                  ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
/usr/lib/libz.so.1:                     ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
e questo è quel che mi dice la strace:
[...]

Codice: Seleziona tutto

mprotect(0xf776a000, 4096, PROT_READ)   = 0
munmap(0xf7716000, 220402)              = 0
set_tid_address(0xf5a2d738)             = 4889
set_robust_list(0xf5a2d740, 0xc)        = 0
futex(0xff9b6150, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xff9b6150, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, ff9b6160) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0xf7302520, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0xf73025a0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=-4286578688, rlim_max=-634655755277959152}) = 0
uname({sys="Linux", node="darkstar", ...}) = 0
brk(0)                                  = 0x83a1000
brk(0x83c2000)                          = 0x83c2000
futex(0xf7199064, FUTEX_WAKE_PRIVATE, 2147483647) = 0
gettimeofday({1307725627, 398025}, NULL) = 0
getpid()                                = 4889
getpid()                                = 4889
getpid()                                = 4889
futex(0xf75ea418, FUTEX_WAKE_PRIVATE, 2147483647) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
[ Process PID=4889 runs in 32 bit mode. ]
Quello che secondo me è responsabile del problema è questo:
futex(0xff9b6150, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, ff9b6160) = -1 EAGAIN (Resource temporarily unavailable)
... ma ho a malapena idea di cosa sia un Futex, e non ho la più pallida idea di come risolvere.... qualche suggerimento?

Grazie a tutti :D

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: ven 10 giu 2011, 19:23
da Blallo
a me funziona benissimo...

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: ven 10 giu 2011, 19:45
da d3k
:(
Ma hai ricompilato il kernel? Hai i driver nvidia o quelli di default (credo nuveau o simili)?
rosik rosik rosik....

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: ven 10 giu 2011, 20:39
da Blallo
si, il kernel è ricompilato, ma se Skype ti funziona allora non credo sia un problema di emulazione dei 32 bit del kernel
e no, ho una stupidissima intel integrata :D

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: ven 10 giu 2011, 21:26
da d3k
jimmy_page_89 ha scritto:si, il kernel è ricompilato
Se puoi mi posteresti la tua .config del kernel e la tua versione? Tanto devo ricompilarlo comunque perchè ho un problema che non sto a raccontare sull'acpi della scheda video che tiene il processo kworker al 100% di cpu... ed è risolto (sembrerebbe) nel 2.6.39.
Quindi tanto vale vedo se tu hai impostato qualcosa di diverso... magari sulla PREEMPT (mi insospettisce la FUTEX_CLOCK_REALTIME che vedo nella strace).

Grazie mille :)

PS sì skype mi funziona :/ ma quello lo uso 10 volte l'anno... invece yoda_soccer almeno una volta al giorno :lol:

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: sab 11 giu 2011, 0:00
da Blallo
Potrebbe interessarti questa riga ;)

Codice: Seleziona tutto

cat /usr/src/linux-2.6.38.4/.config | grep FUTEX
CONFIG_FUTEX=y
Config completo in allegato

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: sab 11 giu 2011, 10:59
da 414N
d3k ha scritto:

Codice: Seleziona tutto

(0xffffe000):                           ERROR: cannot open `(0xffffe000)' (No such file or directory)
A me puzza questa riga. Perché non riporti l'output semplice di ldd yoga_soccer?

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: sab 11 giu 2011, 11:03
da Blallo
senza che te lo riposto, è esattamente identico al tuo :)

Re: Seg. fault in slack64 multilib con yoda_soccer

Inviato: lun 13 giu 2011, 20:12
da d3k
La riga è dovuta allo script con gawk eccetera che ho fatto....
sto guardando le opzioni del kernel ma quelle importanti sono identiche, cambiano un po' di driver etc ma niente di fondamentale.
I futex ce li ho attivi anche io.

L'output di ldd è questo ma non mi sembrava significativo perchè non contiene se la lib è 32 o 64:

Codice: Seleziona tutto

root@darkstar:~/Downloads/yoda_soccer_076# ldd yoda_soccer 
        linux-gate.so.1 =>  (0xffffe000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xf7593000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0xf74c5000)
        libGLU.so.1 => /usr/lib/libGLU.so.1 (0xf7458000)
        libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xf7453000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf73dc000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf72f3000)
        libm.so.6 => /lib/libm.so.6 (0xf72cd000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xf72b1000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf7298000)
        libc.so.6 => /lib/libc.so.6 (0xf7135000)
        libdl.so.2 => /lib/libdl.so.2 (0xf7130000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf7118000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xf7115000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf7110000)
        libnvidia-tls.so.270.41.06 => /usr/lib/libnvidia-tls.so.270.41.06 (0xf710e000)
        libnvidia-glcore.so.270.41.06 => /usr/lib/libnvidia-glcore.so.270.41.06 (0xf59eb000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xf59dd000)
        libz.so.1 => /usr/lib/libz.so.1 (0xf59c9000)
        /lib/ld-linux.so.2 (0xf76e7000)