Ciao a tutti.
Dopo l'aggiornamnto a bullseye ho due problemi che potrebbero essere o
meno collegati. In entrambi i casi si tratta di un segfault.
Il primo è all'installazione di octave: la configurazione fallisce. Ho provato a fare il purge (anche di liboctave8) e la reinstallazione, ma
il risultato non cambia. Cos'altro posso provare a fare?
Il secondo è con python-numpy: appena eseguo un "import numpy" ottengo
un segfault.
diego.zuccato@str957-cluster:~$ python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
Errore di segmentazione (core dump creato)import numpy
L'errore non è solo col mio utente, ma con tutti. Qualcuno ha idea di
come possa debuggare?
Grazie.
--
Diego Zuccato
DIFA - Dip. di Fisica e Astronomia
Servizi Informatici
Alma Mater Studiorum - Università di Bologna
V.le Berti-Pichat 6/2 - 40127 Bologna - Italy
tel.: +39 051 20 95786
Dopo l'aggiornamnto a bullseye ho[...]
segfault.
Il primo è all'installazione di octave: la configurazione fallisce.
Ho
provato a fare il purge (anche di liboctave8) e la reinstallazione, ma
il risultato non cambia. Cos'altro posso provare a fare?
Il secondo è con python-numpy: appena eseguo un "import numpy" ottengo
un segfault.
L'errore non è solo col mio utente, ma con tutti. Qualcuno ha idea di
come possa debuggare?
Dopo l'aggiornamnto a bullseye ho[...]
segfault.
Il primo è all'installazione di octave: la configurazione fallisce.
Il 07/10/2021 20:42, Davide Prina ha scritto:
root@str957-cluster:~# cat /etc/apt/sources.list
deb https://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://ftp.debian.org/debian bullseye main contrib non-free
root@str957-cluster:~# cat /etc/apt/sources.list.d/*
deb http://deb.debian.org/debian/ bullseye-backports main
deb https://repo.pbis.beyondtrust.com/apt pbiso main
* se c'è qualcosa non completamente configuratoSolo octave e octave-linear-algebra
# apt -f install
* aggiornerei il sistema, dopo aver eventualmente aggiustato i repositoryIl problema c'è stato proprio al termine dell'aggiornamento :)
# apt update; apt upgrade; apt dist-upgrade
* guarderei nei logott 08 07:07:05 str957-cluster kernel: octave-cli[2403836]: segfault at
apri un xterm ed esegui (per poi fermarlo basta Ctrl-C)
$ journalctl -f
0 ip 0000000000000000 sp 00007fe490be7a58 error 14 in octave-cli[55dd1d6ff000+2000]
ott 08 07:07:05 str957-cluster kernel: Code: Unable to access opcode
bytes at RIP 0xffffffffffffffd6.
Ma forse ci sono arrivato. In parte, almeno.
Il backtrace con l'eseguibile corretto mi dà:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/bin/octave-cli --silent --no-history --no-init-file --no-window-system --e'.
/usr/lib/x86_64-linux-gnu/libopenblas.so.0
Se rimuovo sia octave che cdo e relative dipendenze, reinstallando
octave non ho più il segfault. Che però riappare se reinstallo cdo.
root@str957-cluster:~# apt install cdo[...]
Selezionato il pacchetto libopenblas0-pthread:amd64 non precedentemente selezionato.
root@str957-cluster:~# octave
X11 connection rejected because of wrong authentication.
octave: unable to open X11 DISPLAY
octave: disabling GUI features
Errore di segmentazione (core dump creato)
Il 08/10/2021 18:37, Davide Prina ha scritto:
Non mi pare.deb https://repo.pbis.beyondtrust.com/apt pbiso mainquesto potrebbe esserne la causa, se ha installato qualche libreria.
Sarebbe meglio evitare di aggiungere repository terzi, se si necessitaSto cercando una soluzione per eliminare PBIS (ex Likewise-open), ma purtroppo ho necessità di autenticare utenti in un AD sul quale non ho controllo. Prima usavo winbind, ma era instabile. Adesso con PBIS ho
di un applicativo particolare che non c'è in Debian l'ottimale sarebbe
installarselo in locale o se non si può in otp facendo attenzione che
non vada a sovrascrivere librerie o altro di sistema
sempre problemi di UID e GID in conflitto (più di 200k utenti e 800k
gruppi, con range fissati per domini molto più piccoli!). La soluzione potrebbe essere Kerberos per l'autenticazione più un LDAP per l'autorizzazione e gli attributi.
Io lo commenterei e verificherei quali pacchetti sono stati installatiHo usato un sistema più drastico:
da questo... puoi usare i comandi che ti avevo indicato:
1) rintracci i pacchetti installati non più presenti nei repository
2) commenti repo.pbis.beyondtrust.com
3) esegui # apt update
4) riesegui il punto 1 e vedi le differenze
- disinstallato pbis-open cdo octave
- effettuato un autoremove
- reinstallato octave
di nuovo segfault. Uff! Eppure venerdì *con* pbis e *senza* cdo funzionava... Qua ci esco pazzo. Mi sa che sia qualcosa nelle lib mpi.
Però io ho octave installato, ma octave-linear-algebra no... potrestiFatto. Ma non va.
anche provare a rimuoverli entrambi e installare solo octave
Altra prova:sì, intendevo rimuovi i pacchetti che non riesci ad installare e rifai# apt update; apt upgrade; apt dist-upgradeIl problema c'è stato proprio al termine dell'aggiornamento :)
quei comandi per assicurarti che il tuo sistema sia aggiornato... se
non lo era, allora dopo l'aggiornamento riprovi ad installare octave
- disabilitati repo pbis e backports
- apt remove octave cdo libopenblas0 libopenblas0-pthread
- apt autoremove
- update + full-upgrade
- apt-show-versions -i
- # apt-show-versions | grep available
pbis-open:amd64 9.1.0.551 installed: No available version in archive pbis-open-upgrade:amd64 9.1.0.551 installed: No available version in
archive
[quindi pare non ci fosse nulla da backports e nessuna lib da pbis]
- apt install octave-linear-algebra
[*FUNZIONA!*]
- apt install cdo
[si porta dietro anche *libopenblas0* e *libopenblas0-pthread*]
- octave va in segfault
La mia conclusione è che octave tenti di usare (male?) libblas0-pthread,
o che ci sia un bug in libblas0-pthread quando viene usata da octave.
cosa riportano i seguenti comandi?lrwxrwxrwx 1 root root 51 11 ott 08.42 /usr/lib/x86_64-linux-gnu/libopenblas.so.0 -> /etc/alternatives/libopenblas.so.0-x86_64-linux-gnu
$ ls -l /usr/lib/x86_64-linux-gnu/libopenblas.so.0
$ dpkg -S /usr/lib/x86_64-linux-gnu/libopenblas.so.0dpkg-query: nessun percorso corrispondente a /usr/lib/x86_64-linux-gnu/libopenblas.so.0
$ dpkg -l | grep "libopenblas0-openmp\|libjulia"ii libjulia1 1.5.3+dfsg-3 amd64 high-performance programming language for technical
computing (runtime library)
o è un link simbolico creato da qualche script di postream o è stataE' un link creato automaticamente da update-alternatives:
installata da un repository terzo, come quello indicato sopra. Nel
secondo caso è possibile che rimuovendo il pacchetto terzo che la
installa risolvi.
update-alternatives --config libblas.so.3-x86_64-linux-gnu
Sono disponibili 3 scelte per l'alternativa
libblas.so.3-x86_64-linux-gnu (che fornisce /usr/lib/x86_64-linux-gnu/libblas.so.3).
Selezione Percorso Priorità Stato ------------------------------------------------------------
* 0 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
100 modalità automatica
1 /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3 35 modalità manuale
2 /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 10 modalità manuale
3 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
100 modalità manuale
Se invece è un link simbolico arriva fino al file vero e verifica inFatto :)
quale pacchetto è presente
però non puoi farmi partire octave da root... devi farlo partire daQuando la libopenblas0-pthread non è installata, non ha problemi. E la configurazione lo lancia da root. Comunque anche da utente fa uguale.
utente...
$ ldd /usr/bin/octaveldd /usr/bin/octave
linux-vdso.so.1 (0x00007ffef04ec000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fc3e75fa000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc3e742d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc3e7413000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc3e73f1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc3e722c000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fc3e7201000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
(0x00007fc3e71f9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc3e70b5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc3e776c000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fc3e70b0000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fc3e6eaa000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fc3e6e93000)
libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0 (0x00007fc3e6e84000)
Sembra che octave sia "furbo" e che carichi dinamicamente altre lib :(
ma se vai partire cdo funziona? (non l'ho installato ho guardato conIn entrambi i casi ottengo l'help.
apt-file i file che installa)
$ cdo
$ cdi
Quindi (senza conoscerlo) posso dire che "funziona". Per lo meno non va
in errore immediatamente.
che libreria usa# ldd /usr/bin/cdo
$ ldd /usr/bin/cdo
linux-vdso.so.1 (0x00007ffdb89a8000)
libcdi.so.0 => /usr/lib/x86_64-linux-gnu/libcdi.so.0 (0x00007f51f193a000)
libMagPlus.so.3 => /usr/lib/x86_64-linux-gnu/libMagPlus.so.3 (0x00007f51f0d7b000)
libproj.so.19 => /usr/lib/x86_64-linux-gnu/libproj.so.19 (0x00007f51f0a08000)
libfftw3.so.3 => /usr/lib/x86_64-linux-gnu/libfftw3.so.3 (0x00007f51f0801000)
libudunits2.so.0 => /usr/lib/x86_64-linux-gnu/libudunits2.so.0 (0x00007f51f07e1000)
libnetcdf.so.18 => /usr/lib/x86_64-linux-gnu/libnetcdf.so.18 (0x00007f51f06b0000)
libhdf5_serial.so.103 => /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f51f032d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f51f030b000)
libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f51f0273000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f51f00a6000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f51eff62000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f51eff22000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f51eff06000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f51efd41000)
/lib64/ld-linux-x86-64.so.2 (0x00007f51f212f000)
libeccodes.so.0 => /usr/lib/x86_64-linux-gnu/libeccodes.so.0 (0x00007f51efa75000)
libsz.so.2 => /usr/lib/x86_64-linux-gnu/libsz.so.2 (0x00007f51efa70000)
libterralib.so.3 => /usr/lib/x86_64-linux-gnu/libterralib.so.3 (0x00007f51ef6c1000)
libodccore.so.0d => /usr/lib/x86_64-linux-gnu/libodccore.so.0d (0x00007f51ef58d000)
libQt5Widgets.so.5 =>
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f51eef01000)
libgeotiff.so.5 => /usr/lib/x86_64-linux-gnu/libgeotiff.so.5 (0x00007f51eeecb000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f51eee9c000)
libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f51eee8b000)
libpango-1.0.so.0 =>
/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f51eee39000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f51eed0a000)
libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f51eebe3000)
libeckit.so.0d => /usr/lib/x86_64-linux-gnu/libeckit.so.0d (0x00007f51ee954000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f51ee292000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f51edd47000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f51edc04000)
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007f51edb7e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
(0x00007f51edb76000)
libhdf5_serial_hl.so.100 => /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f51edb51000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f51edb34000)
libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f51edb07000)
libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f51edae6000)
librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f51edac5000)
libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f51eda90000)
libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f51eda7c000)
libnettle.so.8 => /usr/lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f51eda34000)
libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f51ed834000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f51ed7e1000)
libldap_r-2.4.so.2 =>
/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f51ed789000)
liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f51ed778000)
libbrotlidec.so.1 =>
/usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f51ed76a000)
libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f51ed730000)
libaec.so.0 => /usr/lib/x86_64-linux-gnu/libaec.so.0 (0x00007f51ed727000)
libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f51ed6c8000)
libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f51ed644000)
libeckit_sql.so.0d =>
/usr/lib/x86_64-linux-gnu/libeckit_sql.so.0d (0x00007f51ed4da000)
libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f51ed4c1000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f51ed467000)
libfontconfig.so.1 =>
/usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f51ed41f000)
libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f51ed241000)
libfribidi.so.0 => /usr/lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f51ed225000)
libthai.so.0 => /usr/lib/x86_64-linux-gnu/libthai.so.0 (0x00007f51ed21a000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f51ed132000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f51ed0bf000)
libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f51ed012000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f51ecf4f000)
libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f51ecf4a000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f51ecf1f000)
libxcb-render.so.0 =>
/usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f51ecf10000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f51ecd06000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f51ecbc1000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f51ecbac000)
libsnappy.so.1 => /usr/lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007f51ecba1000)
librsync.so.2 => /usr/lib/x86_64-linux-gnu/librsync.so.2 (0x00007f51ecb92000)
liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f51ecb6f000)
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f51ecb5c000)
libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f51ec866000)
libxxhash.so.0 => /usr/lib/x86_64-linux-gnu/libxxhash.so.0 (0x00007f51ec84d000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
(0x00007f51ec842000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f51ec7bb000)
libmd4c.so.0 => /usr/lib/x86_64-linux-gnu/libmd4c.so.0 (0x00007f51ec7a9000)
libdouble-conversion.so.3 => /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007f51ec790000)
libicui18n.so.67 => /usr/lib/x86_64-linux-gnu/libicui18n.so.67 (0x00007f51ec48a000)
libicuuc.so.67 => /usr/lib/x86_64-linux-gnu/libicuuc.so.67 (0x00007f51ec2a1000)
libpcre2-16.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f51ec217000)
libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f51ec13c000)
libwebp.so.6 => /usr/lib/x86_64-linux-gnu/libwebp.so.6 (0x00007f51ec0d3000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f51ec0a9000)
libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007f51ebe9b000)
libdeflate.so.0 => /usr/lib/x86_64-linux-gnu/libdeflate.so.0 (0x00007f51ebe7f000)
libunistring.so.2 =>
/usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f51ebcfd000)
libhogweed.so.6 => /usr/lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f51ebcb4000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f51ebc31000)
libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f51ebb11000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f51eb9dd000)
libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f51eb9c7000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f51eb8ed000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f51eb8bd000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f51eb8b5000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f51eb8a6000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f51eb88c000)
libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f51eb86f000)
libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f51eb84c000)
libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007f51eb83e000)
libuuid.so.1 => /usr/lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f51eb835000)
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f51eb82f000)
libmount.so.1 => /usr/lib/x86_64-linux-gnu/libmount.so.1 (0x00007f51eb7d2000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f51eb7a6000)
libdatrie.so.1 => /usr/lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f51eb79c000)
libgraphite2.so.3 =>
/usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f51eb76e000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f51eb769000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f51eb563000)
libb2.so.1 => /usr/lib/x86_64-linux-gnu/libb2.so.1 (0x00007f51eb544000)
libGLdispatch.so.0 =>
/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f51eb48c000)
libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f51eb456000)
libicudata.so.67 => /usr/lib/x86_64-linux-gnu/libicudata.so.67 (0x00007f51e993d000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f51e9917000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f51e9910000)
libblkid.so.1 => /usr/lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f51e98bd000)
libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f51e9825000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f51e980e000)
libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0 (0x00007f51e9801000)
$ ldd /usr/bin/cdi# ldd /usr/bin/cdilinux-vdso.so.1 (0x00007ffd5c0c5000)
libcdi.so.0 => /usr/lib/x86_64-linux-gnu/libcdi.so.0 (0x00007f9108716000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9108551000)
libeccodes.so.0 => /usr/lib/x86_64-linux-gnu/libeccodes.so.0 (0x00007f9108285000)
libnetcdf.so.18 => /usr/lib/x86_64-linux-gnu/libnetcdf.so.18 (0x00007f9108154000)
libsz.so.2 => /usr/lib/x86_64-linux-gnu/libsz.so.2 (0x00007f910814f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f910800b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9107fe7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9108854000)
libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f9107fad000)
libaec.so.0 => /usr/lib/x86_64-linux-gnu/libaec.so.0 (0x00007f9107fa4000)
libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007f9107f47000)
libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007f9107f07000)
libhdf5_serial_hl.so.100 => /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f9107ee2000)
libhdf5_serial.so.103 => /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f9107b5f000)
libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f9107ac7000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9107aaa000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
(0x00007f9107aa4000)
libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f9107a77000)
libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f9107a54000)
librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f9107a35000)
libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f9107a00000)
libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f91079ec000)
libnettle.so.8 => /usr/lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f91079a4000)
libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f91077a4000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f910774f000)
libldap_r-2.4.so.2 =>
/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f91076f9000)
liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f91076e8000)
libbrotlidec.so.1 =>
/usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f91076da000)
libunistring.so.2 =>
/usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f9107558000)
libhogweed.so.6 => /usr/lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f910750d000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f910748c000)
libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f910736c000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f9107238000)
libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f9107222000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f9107146000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f9107116000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f9107110000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f9107101000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f91070e7000)
libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f91070ca000)
libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f91070a5000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f910707f000)
libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007f9107073000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f910706c000)
Nessuno dei due è linkato con libopenblas0 o libopenblas0-pthread, ma il pacchetto cdo dipende da entrambe.
Tra l'altro, direi che a questo punto posso confermare che l'errore con python è collegato:
# python3
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
Errore di segmentazione (core dump creato)import numpy
# gdb /usr/bin/python3 core
GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/python3...
(No debugging symbols found in /usr/bin/python3)
[New LWP 314439]
[New LWP 314432]
[New LWP 314434]
[New LWP 314435]
[New LWP 314433]
[New LWP 314436]
[New LWP 314438]
[New LWP 314437]
[New LWP 314440]
[New LWP 314429]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `python3'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x7f6e9d75e700 (LWP 314439))]
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00007f6ed15c9709 in blas_memory_alloc () from /usr/lib/x86_64-linux-gnu/libopenblas.so.0
#2 0x00007f6ed15c9f04 in ?? () from /usr/lib/x86_64-linux-gnu/libopenblas.so.0
#3 0x00007f6ed42e1ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#4 0x00007f6ed4074def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
E questo mi fa pensare *molto* seriamente ad un bug in libopenblas che
non controlla un'allocazione...
Il 11/10/2021 20:15, Davide Prina ha scritto:
Tieni presente che se installi qualcosa da sistemi terzi gli script di
installazione potrebbero modificare file/link di sistema...
Si, lo fanno. Configurazione di PAM e di sshd, ma non alle lib.
Nessuno dei due è linkato con libopenblas0 o libopenblas0-pthread, ma
il pacchetto cdo dipende da entrambe.
questo non vuol dire. Può essere che chiami altro binario
(eseguibile/libreria) che dipende da queste librerie
O che faccia come octave ed usi dlopen.
ldd lista solo le lib necessarie, non quelle opzionali o i "plugin".
$ apt show octavePurtroppo no:
[...]
Recommends: gnuplot-qt | gnuplot-x11 | gnuplot-nox, libopenblas0 |
libatlas3-base, pstoedit, epstool, default-jre-headless, octave-doc
[...]
ma hai installato anche libatlas3-base? hai provato ad installare
questo quando non è installato cdo e libopenblas0 per vedere se ti va
in segfault?
Magari se installi questo poi non ti installa libopenblas0
# apt install libatlas3-base
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze... Fatto
Lettura informazioni sullo stato... Fatto
libatlas3-base è già alla versione più recente (3.10.3-10).
0 aggiornati, 0 installati, 0 da rimuovere e 0 non aggiornati.
prova con valgrind, individui qualcosa di "piccolo" che va in crash
subito ed esegui:
$ valgrind --leak-check=full --num-callers=50 --show-reachable=no \
--show-possibly-lost=no --track-origins=yes --trace-children=yes \
--read-var-info=yes $ESEGUIBILE > risultato.txt
Direi che conferma in pieno la diagnosi:
$ valgrind --leak-check=full --num-callers=50 --show-reachable=no --show-possibly-lost=no --track-origins=yes --trace-children=yes --read-var-info=yes octave > octave.out
==746909== Command: /usr/libexec/octave/6.2.0/exec/x86_64-pc-linux-gnu/octave-gui
==746909==
==746909== Thread 9:
==746909== Jump to the invalid address stated on the next line
==746909== at 0x0: ???
==746909== by 0xBDFD708: blas_memory_alloc (memory.c:2793)
==746909== by 0xBDFDF03: blas_thread_server (blas_server.c:366) ==746909== by 0x8D33EA6: start_thread (pthread_create.c:477)
==746909== by 0x725EDEE: clone (clone.S:95)
==746909== Address 0x0 is not stack'd, malloc'd or (recently) free'd
Cioè in blas_memory_alloc() va a richiamare un NULL pointer.
Probabilmente una callback non è stata correttamente inizializzata.
In realtà prima serve sapere in che sorgente c'è il problema e quindi[...]
bisogna installare i simboli di debug:
A questo punto rieseguendo l'istruzione con valgrind ti riporta ilFatto. memory.c:2793 . Ma su github corrisponde a una #endif ...
nome del sorgente e la riga di quel sorgente.
Altra strada che seguirei è:
1) verificare se i pacchetti installati non hanno problemi (mancanza
di file o "errori" nei file installati)
# debsums -as
2) verificare se ci sono file in più o mancano file nel tuo sistema...
il risultato del comando è quasi di sicuro enorme ed è da analizzare
accuratamente... dovresti escludere tutte le directory che contengono
dati/file non di sistema
$ apt show cruft
ROFLASTC :) Solo per la scansione di /home e /scratch mi ci mette due
giorni :) Ho dovuto anche rimuovere locate :(
Il 12/10/2021 19:43, Davide Prina ha scritto:
vedendo qui:Uhm... Il codice usa l'array memoryalloc come lista di puntatori a
https://sources.debian.org/src/openblas/0.3.13+ds-3/driver/others/memory.c/ >>
l'istruzione è questa:
map_address = (*func)((void *)base_address);
funzione. Però poi itera gli elementi senza verificare se uno di essi è NULL. E l'ultimo lo è sempre (riga 2664).
Probabilmente la condizione per il while alla 2791 dovrebbe essere
relativa a *func, non a func...
Certo che comunque qualcosa non mi torna: se metto la -serial invece
della -pthread, senza cambiare altro, octave funziona...
Altro modo è provare a prendere da testing la versione nuova e vederePurtroppo non risolve :(
se questo risolve, vedendo le dipendenze dovrebbe essere possibile
installare solo il pacchetto preso da testing
Magari mi limito a segnalare la cosa al maintainer. Purtroppo è un
sistema di produzione e non posso fare troppi test :(
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 293 |
Nodes: | 16 (2 / 14) |
Uptime: | 227:28:41 |
Calls: | 6,624 |
Calls today: | 6 |
Files: | 12,171 |
Messages: | 5,318,856 |