Personal tools
You are here: Home Comunità zopemaster's Home old_blog Stracciando Iceweasel

Daniele Paganelli


alias mythsmith

  • Blog
  • Feed RSS
    Iscriviti al diario, con il feed RSS (?)
  • Emopiano
    Imporvvisazioni al pianoforte ed alla tastiera (del computer :)
  • Università
    Documenti redatti per/a/con l'Università
  • Programmazione
    La mia limitata biblioteca personale di script, principalmente in Python.
  • Macropost
    Testi molto lunghi, inadatti per il blog.
  • Segnalibri
    I miei segnalibri direttamente da Firefox... quando mi ricordo di aggiornarli!

Sinapsi

  • AGESCI zona di Modena
    (curato da me, si nota? ;-)
  • Magnatune
    Etichetta discografica online. Musica di alta qualità con licenza CreativeCommons. Anteprime gratuite e complete di qualsiasi album... Attenzione: rischi di non uscirne più fuori!!!
  • Conoscere Linux
    Il Linux User Group di Modena, cui sono associato dalla fondazione.
  • Slack.it
    Wiki di un amico...
  • Punto Informatico
    I miei inutili interventi sulla rivista online più antica d'italia...
  • Oblivion999
    Un gruppo metal
  • Fax via eMail
    Il servizio che utilizzo per inviare e ricevere fax via eMail per lavoro.



Contatti Personali:
  • Jabber: dapa@jabber.org
    Per accedere alla rete Jabber usa Gaim oppure Google Talk
  • Posta: daniele.chioccia.modena1.it
  • OpenWengo: paganoide
  • Perché evito MSN?
 
Document Actions

Stracciando Iceweasel

by mythsmith last modified 2007-08-25 07:03 AM

Ho infine risolto il mio problemone con Firefox/Iceweasel: uscite improvvise senza apparente motivo. Con un po' di strace e gdb, ed un sano apt-get riparatore...

Ricordate il post Repubblica.it fa impazzire i browser? Ebbene, la colpa non era di Repubblica, né di Iceweasel/Firefox. Lanciando la versione di debug del programma, l'ultimo errore prima del crash era:

594     nsTextFrame.cpp: No such file or directory.

Qualcosa dunque mancava, o veniva cercato nel posto sbagliato... In questi casi esiste l'utilissimo programma strace, un System Call Tracer. Lanciando da console:

strace iceweasel

verrà avviato iceweasel mentre lo standard out viene inondato di informazioni. Ogni riga dell'output specifica quale chiamata di sistema sta venendo inoltrata dal programma lanciato, in quel preciso istante. Nel mio caso il debug è stato molto semplice: quando iceweasel è uscito inaspettatamente, sono andato a leggere quali chiamate erano in corso.

 

[...]

open("/var/lib/defoma/fontconfig.d/L/LucidaSans.ttf", O_RDONLY) = -1 ENOENT (No
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
unlink("/home/daniele/.mozilla/firefox/kl5cndvj.default/lock") = 0
rt_sigaction(SIGSEGV, {SIG_DFL}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [SEGV], NULL, 8) = 0
tgkill(3367, 3367, SIGSEGV)             = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 3367 detached

 

Come lasicava pensare il messaggio di debug "No such file or directory.", Iceweasel stava tentando di aprire un file senza riuscirvi: l'ultima chiamata di sistema prima del segnale SIGSEGV è un open(), cioè più o meno "accedi ad un file o ad una periferica". Dagli argomenti della chiamata possiamo capire quale file Iceweasel stava aprendo, in che modalità (lettura, scrittura, etc), ed il codice d'uscita accompagnato da altre informazioni. 

 

open( Nome della chiamata di sistema (apri file o periferica)

"/var/lib/defoma/fontconfig.d/L/LucidaSans.ttf",

Arg.1: Percorso del file da aprire
O_RDONLY )
Arg.2: Modalità d'accesso: sola lettura
= -1 ENOENT (No Codice d'uscita: No such file or directory (troncato da strace)

 

Ora non resta che da capire cosa non va con questo benedetto file: /var/lib/defoma/fontconfig.d/L/LucidaSans.ttf !

Listando la cartella in cui si trova, vedo che, assieme a tanti altri, si tratta di un link simbolico interrotto:

$ ls -l /var/lib/defoma/fontconfig.d/L

[...]

lrwxrwxrwx 1 root root 58 2007-05-02 10:59 LucidaSans.ttf -> /usr/share/fonts/truetype/ttf-lucida/LucidaSansRegular.ttf

[...]

E listando la cartella /usr/share/fonts/truetype/ttf-lucida mi accorgo che anche LucidaSansRegular.ttf è un link interrotto:

   $ ls -l /usr/share/fonts/truetype/ttf-lucida

[...]

lrwxrwxrwx 1 root root 81 2007-02-16 01:13 LucidaBrightRegular.ttf -> ../../../../lib/jvm/java-1.5.0-sun-1.5.0.11/jre/lib/fonts/LucidaBrightRegular.ttf

[...]

E la catena di link interrotti è giunta a conclusione: il problema è che la cartella /lib/jvm non esiste! Quindi tutti i link risultano interrotti e quando Iceweasel tenta di aprire l'inizio della catena, si trova con un errore fatale.

E' fuori discussione che il link si riferisca a Java (java-1.5.0-sun-1.5.0.11), quindi qualcosa deve esser andato storto con la mia installazione di Java... Sono su Debian, quindi la soluzione più rapida al problema è senza dubbio reinstallare il pacchetto di sun-java6-fonts.

Due minuti dopo stavo navigando su Repubblica e sul Music Manager di Last.fm...

 

Originariamente pubblicato su Laboratorio Caffeina


hosting
Iniziative che sponsorizziamo:
Scopri altri siti scout!
Sito precedente 5o sito precedente Home ScoutRing Lista dei Siti Sito Casuale Sito successivo 5o sito successivo
Informati e protesta contro il DRM!
Powered by Plone, the Open Source Content Management System