Corrupted Database because of faulty memory stick

Hi all,

The issue doesn’t exist anymore. But I want to show it to the public in case someone else is faced with it somewhen.

I’ve added a new (used) memory stick to my Roon rock server.
A short while after I had to restart because it didn’t respond anymore.
Some minutes later artist pictures disappeared, wrong pictures were shown. Strange things happened.

Checking the rock logs I found lots of these messages:

-------------------snip-----------------------
04/26 21:36:52 Trace: [dbperf] flush 0 bytes, 0 ops in 15 ms (cumulative 14354 bytes, 0 ops in 7776 ms)
04/26 21:36:53 Trace: [metadatasvc] GOT [20] (175ms) Sooloos.Msg.Metadata.GetMetadataResponse:
04/26 21:36:53 Trace: [metadatasvc] GOT [19] (206ms) Sooloos.Msg.Metadata.GetMetadataResponse:
04/26 21:36:53 Critical: updatemetadata(3): LevelDb.Exception: Corruption: corrupted compressed block contents
at LevelDb.Database._CheckError(IntPtr err)
at LevelDb.Database.TryGetValue(Byte[] key, ByteBuffer& val)
at LevelDb.KeySpace.TryGetValue(Byte[] key, ByteBuffer& val)
at LevelDb.KeySpace.TryGetValue(Byte[] key, Byte[]& val)
at Sooloos.Broker.TinySooidDb._Get(Sooid s)
at Sooloos.Broker.TinySooid.Get(Sooid s)
at Sooloos.Broker.Music.MusicDatabase._GetExactTextPerformerIds(Performer perf)
at Sooloos.Broker.Music.MusicDatabase.PutPerformer(LocalPerformer local, Performer metadata, PerformerOverlay overlay, Boolean force_mappings)
at Sooloos.Broker.Music.Library.UpdatePerformer(LocalPerformer local, Performer metadata, PerformerOverlay overlay, Boolean impacts_mappings)
at Sooloos.Broker.Music.UpdateMetadata._SavePerformerMetadata(IMessage msg)
at Sooloos.Broker.Music.UpdateMetadata.<>c__DisplayClass40_1.<_UpdateMetadata>b__11(Result`1 getresult)
04/26 21:36:53 Trace: [library] finished with 48 dirty tracks 5 dirty albums 12 dirty performers 1 dirty works 1 dirty performances 28 dirty genres 0 clumping tracks, 0 clumping auxfiles 0 compute tracks, 0 deleted tracks, 0 tracks to (re)load, 0 tracks to retain, 0 auxfiles to (re)load, 0 auxfiles to retain, and 95 changed objects
04/26 21:36:53 Critical: Library.EndMutation: LevelDb.Exception: Corruption: corrupted compressed block contents
at LevelDb.Database._CheckError(IntPtr err)
at LevelDb.Database.Write(WriteBatch batch)
at LevelDb.Transaction.Commit(Boolean trace)
at Sooloos.Broker.Music.MusicDatabase.Flush()
at Sooloos.Broker.Music.Library.EndMutation()

---------------------snip--------------------

To cut the story short:

I switched off, removed the memory stick, switched on.
Restored a database backup and the server discovered the missing discs.

Everything was back to normal.

Andreas

PS
The memory stick has been retired. :grinning:

Backups are handy to have :slight_smile: