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

Re: Segfaults



Il 12/10/2021 19:43, Davide Prina ha scritto:

quando installi un pacchetto .deb viene eseguito come root e come root può fare di tutto...
Lo so. Per questo usiamo solo repository verificati e "affidabili". I ppa mi danno i brividi... :)

ldd lista solo le lib necessarie, non quelle opzionali o i "plugin".
no, ldd indica tutte le librerie linkate dinamicamente
Non può.
Una libreria linkata dinamicamente può non essere presente... l'importante è che l'eseguibile non la chiami e se è opzionale ci sarà un controllo che non la fa chiamare.
Sono passati diversi anni da quando ho usato opzioni avanzate di link, ma questa non la sapevo. Per come la sapevo io, se ld non trova una lib non si riesce a lanciare l'eseguibile. Per caricare lib opzionali c'è, appunto, ldopen: prende un filename che potrebbe essere generato dinamicamente ("carica tutti i .so presenti in questa cartella") e lo mappa in memoria. Ma ldd fa un'analisi statica del file e non può sapere quali file verranno caricati da ldopen.

==746909==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
questo errore non l'ho mai incontrato prima.
Un normalissimo NULL pointer dereference, direi :)

Apri un bug su libopenblas0, segnala come riprodurlo, installando octave, ... e riportando questo come risultato dell'esecuzione di octave
Non è così semplice.

vedendo qui:
https://sources.debian.org/src/openblas/0.3.13+ds-3/driver/others/memory.c/
l'istruzione è questa:
map_address = (*func)((void *)base_address);
Uhm... Il codice usa l'array memoryalloc come lista di puntatori a 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 vedere se questo risolve, vedendo le dipendenze dovrebbe essere possibile installare solo il pacchetto preso da testing
Purtroppo non risolve :(
Magari mi limito a segnalare la cosa al maintainer. Purtroppo è un sistema di produzione e non posso fare troppi test :(

--
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


Reply to: