O Banshee encontrou um erro fatal (erro sqlite 11: a imagem de disco do banco de dados está malformada)

6

Estou executando o ubuntu 10.10 Maverick Meerkat, e recentemente estou ajudando a testar o tempo indicador usando os buques instáveis. No entanto, houve um bug que causou o meu sistema para congelar de repente (devido ao indicador-tempo não Ubuntu) ea única maneira de recuperar é fazer uma reinicialização do sistema. Isso aconteceu algumas vezes.

E quando eu tentei abrir o banshee depois de alguns resets, recebi o seguinte erro fatal que me forçou a sair do banshee.

A captura de tela não está clara o suficiente para ler o erro, então estou postando abaixo,

   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

Só para deixar claro, isso aconteceu somente após as redefinições difíceis e não antes. Eu costumava usar banshee todos os dias e funcionou perfeitamente.

Alguém pode me ajudar a consertar isso?

    
por nik90 13.03.2011 / 15:40

2 respostas

8

Este problema, infelizmente, não é completamente incomum. Isso geralmente é causado por uma falha do sistema ou falta de energia enquanto o Banshee está em execução, mas também pode haver outras causas. A página de FAQ do Banshee tem uma lista de instruções que funcionam a maior parte do tempo . No terminal, com o programa sqlite3 instalado, tente isto:

Mude para o diretório em que o Banshee armazena o banco de dados:

cd ~/.config/banshee-1

Execute o comando ".dump" no banco de dados, que converterá todas as tabelas em texto. Salve esta saída em um arquivo chamado dump . Você pode precisar de sudo apt-get install sqlite3 se ainda não tiver.

sqlite3 banshee.db ".dump" > dump

Renomeie seu banco de dados atual para criar um backup:

mv banshee.db banshee.db.backup

Passe o conteúdo do seu dump através do comando sqlite3 , criando um novo banco de dados (com o mesmo conteúdo do original):

cat dump | sqlite3 banshee.db

Há trabalhos em andamento no Banshee para automatizar o backup e a recuperação do banco de dados. Se você quiser manter-se atualizado sobre o progresso, sinta-se à vontade para se inscrever no relatório de erros .

    
por Michael Martin-Smucker 14.03.2011 / 14:03
2

Parece que o banco de dados do Banshee está corrompido. Para executar o Banshee, você deve remover o arquivo de banco de dados corrompido (ou repará-lo). O banco de dados está localizado em

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

Renomeie-o e o Banshee poderá ser executado novamente. Mas todas as suas configurações estão perdidas. Se você quiser recuperá-lo, siga este artigo .

Isso consiste em:

  1. Abra uma janela de terminal e navegue até ~/.config/banshee-1 e instale o sqlite3: sudo apt-get install sqlite3
  2. Backup do arquivo banshee.db copiando-o.
  3. Abra o arquivo de banco de dados usando sqlite3: sqlite3 banshee.db
  4. Faça uma verificação de integridade emitindo o comando PRAGMA integrity_check; . Isso relata erros, mas não os corrige
  5. Experimente o comando REINDEX;

Se nenhum dos itens acima funcionou, continue lendo Recuperando um banco de dados corrompido do Banshee .

    
por Lekensteyn 13.03.2011 / 16:14

Tags