6 votes

Banshee a rencontré une erreur fatale (sqlite error 11 : database disk image is malformed).

J'utilise ubuntu 10.10 Maverick Meerkat, et récemment j'ai aidé à tester indicator-weather en utilisant les buids instables. Cependant, il y a eu un bug qui a provoqué un gel soudain de mon système (dû à indicator-weather et non à ubuntu) et la seule façon de récupérer est de faire une réinitialisation du système. Cela s'est produit à plusieurs reprises.

Et lorsque j'ai essayé d'ouvrir banshee après plusieurs de ces réinitialisations, j'ai obtenu l'erreur fatale suivante qui m'a obligé à quitter banshee.

enter image description here

La capture d'écran n'est pas assez claire pour que l'on puisse lire l'erreur, je la poste donc ci-dessous,

   An unhandled exception was thrown: Sqlite error 11: database disk image is malformed (SQL: 
                BEGIN TRANSACTION;
                    DELETE FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID IN (SELECT SmartPlaylistID FROM CoreSmartPlaylists WHERE IsTemporary = 1);
                    DELETE FROM CoreSmartPlaylists WHERE IsTemporary = 1;
                COMMIT TRANSACTION)

  at Hyena.Data.Sqlite.Connection.CheckError (Int32 errorCode, System.String sql) [0x00000] in <filename unknown>:0 
  at Hyena.Data.Sqlite.Connection.Execute (System.String sql) [0x00000] in <filename unknown>:0 
  at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x00000] in <filename unknown>:0 
Exception has been thrown by the target of an invocation.

  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0 
  at Banshee.Gui.GtkBaseClient.Startup () [0x00000] in <filename unknown>:0 
  at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.StartupInvocationHandler startup) [0x00000] in <filename unknown>:0 

.NET Version: 2.0.50727.1433
OS Version: Unix 2.6.35.27

Assembly Version Information:

gkeyfile-sharp (1.0.0.0)
Banshee.AudioCd (1.9.0.0)
Banshee.MiniMode (1.9.0.0)
Banshee.CoverArt (1.9.0.0)
indicate-sharp (0.4.1.0)
notify-sharp (0.4.0.0)
Banshee.SoundMenu (1.9.0.0)
Banshee.Mpris (1.9.0.0)
Migo (1.9.0.0)
Banshee.Podcasting (1.9.0.0)
Banshee.Dap (1.9.0.0)
Banshee.LibraryWatcher (1.9.0.0)
Banshee.MultimediaKeys (1.9.0.0)
Banshee.Bpm (1.9.0.0)
Banshee.YouTube (1.9.0.0)
Banshee.WebBrowser (1.9.0.0)
Banshee.Wikipedia (1.9.0.0)
pango-sharp (2.12.0.0)
Banshee.Fixup (1.9.0.0)
Banshee.Widgets (1.9.0.0)
gio-sharp (2.14.0.0)
gudev-sharp (1.0.0.0)
Banshee.Gio (1.9.0.0)
Banshee.GStreamer (1.9.0.0)
System.Configuration (2.0.0.0)
NDesk.DBus.GLib (1.0.0.0)
gconf-sharp (2.24.0.0)
Banshee.Gnome (1.9.0.0)
Banshee.NowPlaying (1.9.0.0)
Mono.Cairo (2.0.0.0)
System.Xml (2.0.0.0)
Banshee.Core (1.9.0.0)
Hyena.Data.Sqlite (1.9.0.0)
System.Core (3.5.0.0)
gdk-sharp (2.12.0.0)
Mono.Addins (0.4.0.0)
atk-sharp (2.12.0.0)
Hyena.Gui (1.9.0.0)
gtk-sharp (2.12.0.0)
Banshee.ThickClient (1.9.0.0)
Nereid (1.9.0.0)
NDesk.DBus.Proxies (0.0.0.0)
Mono.Posix (2.0.0.0)
NDesk.DBus (1.0.0.0)
glib-sharp (2.12.0.0)
Hyena (1.9.0.0)
System (2.0.0.0)
Banshee.Services (1.9.0.0)
Banshee (1.9.0.0)
mscorlib (2.0.0.0)

Platform Information: Linux 2.6.35-27-generic i686 unknown GNU/Linux

Disribution Information:

[/etc/lsb-release]
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"

[/etc/debian_version]
squeeze/sid

Juste pour que ce soit clair, cela s'est produit seulement après les réinitialisations dures et pas avant. J'utilisais banshee tous les jours et il fonctionnait parfaitement.

Quelqu'un peut-il m'aider à résoudre ce problème ?

0 votes

Il s'agit d'un bogue signalé en amont bugzilla.gnome.org/show_bug.cgi?id=621057

9voto

c0m4 Points 1269

Ce problème n'est, malheureusement, pas tout à fait rare. Il est souvent causé par une panne de système ou une coupure de courant pendant que Banshee est en cours d'exécution, mais il peut y avoir d'autres causes. Le site Page FAQ du Banshee a une liste d'instructions qui fonctionnent la plupart du temps . Dans le terminal, avec le programme sqlite3 installé, essayez ceci :

Changez dans le répertoire où Banshee stocke la base de données :

cd ~/.config/banshee-1

Exécutez la commande ".dump" sur la base de données, qui convertira toutes les tables en texte. Enregistrez cette sortie dans un fichier nommé dump . Vous devrez peut-être sudo apt-get install sqlite3 si vous ne l'avez pas déjà.

sqlite3 banshee.db ".dump" > dump

Renommez votre base de données actuelle pour créer une sauvegarde :

mv banshee.db banshee.db.backup

Transmettez le contenu de votre dump à travers le sqlite3 créant ainsi une nouvelle base de données (avec le même contenu que l'original) :

cat dump | sqlite3 banshee.db

Un travail est en cours dans Banshee pour rendre automatique la sauvegarde et la récupération des bases de données. Si vous voulez rester à jour sur les progrès, n'hésitez pas à vous CC à la rapport de bogue .

0 votes

Merci, MichaelMS. Je suis heureux d'entendre qu'il y a un rapport de bogue pour automatiser ce processus, ce qui rendra banshee plus fiable et, bien sûr, fonctionnera sans que l'utilisateur ait à se soucier de quoi que ce soit... la marque d'un bon programme :)

2voto

Lekensteyn Points 162346

Il semble que la base de données de Banshee soit devenue corrompue. Pour que Banshee fonctionne, vous devez supprimer le fichier de base de données corrompu (ou le réparer). La base de données se trouve à l'adresse suivante

~/.config/banshee-1/banshee.db

Renommez-le, et Banshee pourra à nouveau fonctionner. Mais tous vos paramètres sont perdus. Si vous voulez les récupérer, suivez les instructions suivantes cet article .

Cela consiste à :

  1. Ouvrez une fenêtre de terminal et naviguez vers ~/.config/banshee-1 et installez sqlite3 : sudo apt-get install sqlite3
  2. Sauvegarde le fichier banshee.db en le copiant.
  3. Ouvrez le fichier de la base de données en utilisant sqlite3 : sqlite3 banshee.db
  4. Faites un contrôle d'intégrité en lançant la commande PRAGMA integrity_check; . Cela signale les erreurs, mais ne les corrige pas
  5. Essayez la commande REINDEX;

Si rien de ce qui précède n'a fonctionné, continuez à lire Récupération d'une base de données Banshee corrompue .

0 votes

Merci beaucoup. Je n'ai pas pu le réparer. J'ai donc dû supprimer la base de données. Et après ça, Banshee a commencé à tout réimporter. Mais merci...

0 votes

@Nik, si vous avez toujours votre base de données corrompue, voir mon post ci-dessous. Il y a en fait des instructions officielles de l'équipe de Banshee pour résoudre ce problème pendant que l'équipe travaille à la mise en place d'une récupération automatique. Je ne promets pas que cela fonctionnera, mais cela vaut la peine d'essayer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X