Re: Segfaults
è meglio che rispondi sempre in lista, potresti trovare aiuto da altri,
se invece scrivi solo a una persona può essere che perdi l'aiuto che ti
permette di risolvere.
Quoto poco o meglio elimino poche cose che non fanno più parte del
discorso per far capire anche a chi non ha letto la risposta intermedia.
On 11/10/21 09:03, Diego Zuccato wrote:
Il 08/10/2021 18:37, Davide Prina ha scritto:
deb https://repo.pbis.beyondtrust.com/apt pbiso main
questo potrebbe esserne la causa, se ha installato qualche libreria.
Non mi pare.
Sarebbe meglio evitare di aggiungere repository terzi, se si necessita
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
Sto 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
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 installati
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
Ho usato un sistema più drastico:
- disinstallato pbis-open cdo octave
ma questo non è detto che rimuova tutto ciò che è stato installato da
quel repository
- effettuato un autoremove
neanche questo ti assicura la rimozione di tutto ciò che è stato
installato da quel repository
- 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... potresti
anche provare a rimuoverli entrambi e installare solo octave
Fatto. Ma non va.
# apt update; apt upgrade; apt dist-upgrade
Il problema c'è stato proprio al termine dell'aggiornamento :)
sì, intendevo rimuovi i pacchetti che non riesci ad installare e rifai
quei comandi per assicurarti che il tuo sistema sia aggiornato... se
non lo era, allora dopo l'aggiornamento riprovi ad installare octave
Altra prova:
- 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]
ma quando rimuovevi sopra pbis-open, poi rimuoveva anche pbis-open-upgrade?
Tieni presente che se installi qualcosa da sistemi terzi gli script di
installazione potrebbero modificare file/link di sistema...
- 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.
però non capisco, se installi solo Octave funziona e sembra non usare
tale libreria, se installi anche cdo si ha che Octave va in crash...
probabilmente cdo, o le librerie che carica, modificano qualche
configurazione di sistema
cosa riportano i seguenti comandi?
$ ls -l /usr/lib/x86_64-linux-gnu/libopenblas.so.0
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
$ dpkg -S /usr/lib/x86_64-linux-gnu/libopenblas.so.0
dpkg-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 è stata
installata da un repository terzo, come quello indicato sopra. Nel
secondo caso è possibile che rimuovendo il pacchetto terzo che la
installa risolvi.
E' un link creato automaticamente da update-alternatives:
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 in
quale pacchetto è presente
Fatto :)
però non puoi farmi partire octave da root... devi farlo partire da
utente...
Quando la libopenblas0-pthread non è installata, non ha problemi. E la
configurazione lo lancia da root. Comunque anche da utente fa uguale.
no, da root non devi mai eseguire dei programmi utente, mai.
$ ldd /usr/bin/octave
ldd /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 :(
no, al massimo vedevi qui che necessitava di una libreria, ma non la
trovata (alcuni mettono negli script di avio i path per trovare le
librerie).
In questo caso può essere che una di queste o altro componente chiamato
da Octave quando è in esecuzione chiami quelle librerie.
ma se vai partire cdo funziona? (non l'ho installato ho guardato con
apt-file i file che installa)
$ cdo
$ cdi
In entrambi i casi ottengo l'help.
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/cdi
linux-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.
questo non vuol dire. Può essere che chiami altro binario
(eseguibile/libreria) che dipende da queste librerie
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.
>>> import numpy
Errore di segmentazione (core dump creato)
$ apt rdepends libopenblas0
[...]
Dipende: python3-qiskit-aer
|Raccomanda: octave
[...]
$ apt show octave
[...]
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
# 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...
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
dove al posto di $ESEGUIBILE metti il nome, esempio octave e lo fai
seguire degli eventuali parametri, poi esegui i passi che portano al
segfault
Nel file risultato.txt dovresti avere l'indicazione di errati usi di
memoria. Il file potrebbe essere molto lungo.
Interessanti sono:
* doppi free o delete
* uso di puntatore non allocato
* uso di puntatore non inizializzato
se trovi qualcosa di tutto questo è possibile capire al volo dove si
trovi il problema.
In realtà prima serve sapere in che sorgente c'è il problema e quindi
bisogna installare i simboli di debug:
aggiungendo in /etc/apt/sources.list
deb https://deb.debian.org/debian-debug/ stable-debug main
aggiornando la chace:
# apt update
e installando i simboli di debug del pacchetto che ti indica come
contenente una delle chiamate al problema per arrivare all'errore.
A questo punto rieseguendo l'istruzione con valgrind ti riporta il nome
del sorgente e la riga di quel sorgente.
Ad esempio puoi vedere questo bug report che ho segnalato e in cui ho
usato valgrind per trovare il bug: individuare la libreria e individuare
l'istruzione della libreria che causava il problema
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975658
Poi se vuoi indagare su sorgenti di grosse dimensioni, senza sapere
nulla di cosa fanno c'è l'eccezionale cscope... ti permette in un batter
d'occhio di individuare quello che cerchi e di apportare modifiche senza
sapere nulla del 99,999999% del restante codice 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
Ciao
Davide
--
What happened in 2013 couldn't have happened without free software
(He credited free software for his ability to help disclose the U.S.
government's far-reaching surveillance projects).
Edward Snowden
Reply to: