[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: