lunedì 12 marzo 2012

[Workaround] Crash della shell di Gnome3 avviando una ricerca in Attività (schede Nvidia)

Lo so, il titolo non è dei più semplici, ma chi usa Gnome3 ed ha aggiornato i driver Nvidia all'ultima versione, sa di cosa sto parlando. :)

A causa di un bug dei driver Nvidia versione 295, non appena si digita una lettera nella casella di ricerca di Attività (ma attenzione: non tutte le lettere, lo fa con la G, la M, e non so quante altre) la shell di Gnome3 va inesorabilmente in crash e si riavvia (quando va bene).

Il bug è grave, e se dobbiamo aspettare gli aggiornamenti di Nvidia, campa cavallo... c'è chi suggerisce un downgrade del driver alla versione 290, ma cercando informazioni in rete ho capito che la cosa è piuttosto complicata e dagli esiti a volte imprevedibili.

Semplice invece è un workaround che ho trovato spulciando tra un linux forum e l'altro, e che vi riassumo qui sotto in poche righe.

Aprite una finestra di terminale e date i seguenti comandi:

cp ~/.local/share/recently-used.xbel ~/.local/share/recently-used.xbel.old
echo "" > ~/.local/share/recently-used.xbel
sudo chattr +i ~/.local/share/recently-used.xbel


Fatto? Fatto. Provate a fare ora una ricerca in Attività, se non ci credete.


Cosa abbiamo fatto?
Dopo aver fatto una copia di sicurezza del file recently-used.xbel, praticamente l'abbiamo svuotato (secondo comando) e l'abbiamo reso non modificabile (terzo comando).


Pare infatti che il problema sia dovuto a voci non valide che librsvg2 va a scrivere in recently-used.xbel, che quindi in lettura provocano il crash della shell. Svuotando quest'ultimo e impedendone la scrittura, si evita il crash.

A cosa serva recently-used.xbel, si può intuire dal nome: probabilmente contiene le ultime ricerche effettuate con Attività, che quindi altrettanto probabilmente non saranno più disponibili.

Consiglio quindi di provare a rendere riscrivibile recently-used.xbel non appena uscirà una nuova versione dei driver Nvidia; potremo farlo facilmente col comando

sudo chattr -i ~/.local/share/recently-used.xbel


Fino ad allora... meglio rinunciare alle ultime ricerche, piuttosto che dover sopportare un bug così fastidioso.


Edit 27/03/12: dopo alcuni aggiornamenti di Ubuntu il file recently-used.xbel è tornato riscrivibile da solo, e il problema si è ripresentato (evidentemente il bug non è stato ancora corretto). Per eliminarlo nuovamente non ho fatto altro che ripetere la procedura qui sopra descritta. Ripetetela periodicamente ogni volta che il problema si ripresenterà: si può ragionevolmente prevedere che quando il bug verrà corretto, recently-used.xbel tornerà riscrivibile e noi, in assenza del problema, non ce ne accorgeremo nemmeno.