Solved TMM Won't launch properly anymore - some type of database corruption?
#1
First off, excellent program thank you for developing this wonderful tool!

It's very strange though, lately when trying to launch TMM it shows the splash screen and the progress bar so far along, and then just quits.   I have been able to get it to launch once (and only once) by manually restoring the data folder contents from a previous backup located in the backup folder, but subsequent attempts to launch it quits again.   Below is an excerpt from the the TMM.log claiming something is corrupted but I don't know how to fix this?

2019-09-20 10:09:59,684 INFO  [main] org.tinymediamanager.TinyMediaManager:154 - =====================================================
2019-09-20 10:09:59,687 INFO  [main] org.tinymediamanager.TinyMediaManager:155 - === tinyMediaManager © 2012-2019 Manuel Laggner ===
2019-09-20 10:09:59,687 INFO  [main] org.tinymediamanager.TinyMediaManager:156 - =====================================================
2019-09-20 10:09:59,688 INFO  [main] org.tinymediamanager.TinyMediaManager:157 - tmm.version      : 3.0.4
2019-09-20 10:09:59,690 INFO  [main] org.tinymediamanager.TinyMediaManager:158 - os.name          : Windows 10
2019-09-20 10:09:59,690 INFO  [main] org.tinymediamanager.TinyMediaManager:159 - os.version       : 10.0
2019-09-20 10:09:59,690 INFO  [main] org.tinymediamanager.TinyMediaManager:160 - os.arch          : amd64
2019-09-20 10:09:59,690 INFO  [main] org.tinymediamanager.TinyMediaManager:161 - java.version     : 1.8.0_221
2019-09-20 10:09:59,690 INFO  [main] org.tinymediamanager.TinyMediaManager:162 - java.maxMem      : 512 MiB
2019-09-20 10:10:00,283 INFO  [main] org.tinymediamanager.TinyMediaManager:622 - current encoding : UTF-8 | UTF8 | UTF-8
2019-09-20 10:10:00,283 INFO  [main] org.tinymediamanager.TinyMediaManager:179 - System language  : en_US
2019-09-20 10:10:00,283 INFO  [main] org.tinymediamanager.TinyMediaManager:180 - GUI language     : en_US
2019-09-20 10:10:00,597 INFO  [main] o.t.scraper.config.MediaProviderConfig:77 - load settings 'data\scraper_imdb.conf'
2019-09-20 10:10:00,799 INFO  [main] org.tinymediamanager.TinyMediaManager:181 - Scraper language : English
2019-09-20 10:10:00,846 INFO  [main] org.tinymediamanager.TinyMediaManager:182 - TV Scraper lang  : English
2019-09-20 10:10:02,174 INFO  [main] org.tinymediamanager.TinyMediaManager:210 - =====================================================
2019-09-20 10:10:02,184 INFO  [main] org.tinymediamanager.TinyMediaManager:238 - starting tinyMediaManager
2019-09-20 10:10:02,245 INFO  [main] o.t.thirdparty.MediaInfoUtils:75 - Using MediaInfoLib - v19.04
2019-09-20 10:10:02,308 ERROR [main] o.t.core.movie.MovieModuleManager:84 - Error in the background thread of the persistent cache
java.lang.IllegalStateException: File corrupted in chunk 26941, expected page length 4..768, got 921719515 [1.4.199/6]
    at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:883)
    at org.h2.mvstore.MVStore.readBufferForPage(MVStore.java:1055)
    at org.h2.mvstore.MVStore.readPage(MVStore.java:2186)
    at org.h2.mvstore.MVMap.readPage(MVMap.java:554)
    at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1086)
    at org.h2.mvstore.Cursor.hasNext(Cursor.java:53)
    at org.h2.mvstore.MVStore.readStoreHeader(MVStore.java:793)
    at org.h2.mvstore.MVStore.<init>(MVStore.java:401)
    at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3343)
    at org.tinymediamanager.core.movie.MovieModuleManager.startUp(MovieModuleManager.java:85)
    at org.tinymediamanager.core.TmmModuleManager.enableModule(TmmModuleManager.java:56)
    at org.tinymediamanager.TinyMediaManager$1.run(TinyMediaManager.java:272)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
2019-09-20 10:10:02,309 ERROR [main] org.tinymediamanager.TinyMediaManager:383 - IllegalStateException
java.lang.IllegalStateException: File corrupted in chunk 26941, expected page length 4..768, got 921719515 [1.4.199/6]
    at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:883)
    at org.h2.mvstore.MVStore.readBufferForPage(MVStore.java:1055)
    at org.h2.mvstore.MVStore.readPage(MVStore.java:2186)
    at org.h2.mvstore.MVMap.readPage(MVMap.java:554)
    at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1086)
    at org.h2.mvstore.Cursor.hasNext(Cursor.java:53)
    at org.h2.mvstore.MVStore.readStoreHeader(MVStore.java:793)
    at org.h2.mvstore.MVStore.<init>(MVStore.java:401)
    at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3343)
    at org.tinymediamanager.core.movie.MovieModuleManager.startUp(MovieModuleManager.java:85)
    at org.tinymediamanager.core.TmmModuleManager.enableModule(TmmModuleManager.java:56)
    at org.tinymediamanager.TinyMediaManager$1.run(TinyMediaManager.java:272)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
#2
yes looks like a corrupted database - I am sorry, I cannot say whether why this happened or if we can recover the database.

but fortunately all _needed_ data is stored inside the NFO (just a few meta data from tmm is only in the database).
Just try to delete the file <tmm folder>\data\movies.db and restart tmm. you get an empty movies database and will be able to re-fill everything by a simple "update datasources" (all settings are in another file)
tinyMediaManager - THE media manager of your choice - available for Windows, macOS and Linux
Help us translate tinyMediaManager at Weblate | Translations at 66%
Found a bug or want to submit a feature request? Contact us at GitLab
#3
(2019-09-21, 10:03)mlaggner Wrote: yes looks like a corrupted database - I am sorry, I cannot say whether why this happened or if we can recover the database.

but fortunately all _needed_ data is stored inside the NFO (just a few meta data from tmm is only in the database).
Just try to delete the file <tmm folder>\data\movies.db and restart tmm. you get an empty movies database and will be able to re-fill everything by a simple "update datasources" (all settings are in another file)
Thanks will give this a try....
#4
(2019-09-21, 10:03)mlaggner Wrote: yes looks like a corrupted database - I am sorry, I cannot say whether why this happened or if we can recover the database.

but fortunately all _needed_ data is stored inside the NFO (just a few meta data from tmm is only in the database).
Just try to delete the file <tmm folder>\data\movies.db and restart tmm. you get an empty movies database and will be able to re-fill everything by a simple "update datasources" (all settings are in another file)
Hi, I am getting the same issue. Deleting tvshows.db allows it to start and I can rebuild the library, unfortunately this happens every single time I close the program.
Ive tried about half a dozen times, but I cannot exit the software without the database corrupting.

Any ideas?
#5
Same problem here: tinyMM 3.05 (both pre-release of 29 Sept. and nightly of 30 Sept.) don't get past splash screen. The problem is not related to Java version installed - I have the latest Java for Windows desktop.

CRUDE SOLUTION: Reinstall version 3.04-STABLE (1  Sept. 2019). Even dirty installing (overwriting updated version 3.05) works.

Hope the issue is fixed, because the changes announced in v3.05 have been welcome for a long time.
#6
CRUDE SOLUTION - UPDATE:

After I did a clean re-installation of v3.04 I tried to copy over my customizations (<tinymm>/data). Only the .conf files (scraper customizations) could be copied over without crashing the new install, suggesting that problem in new version 3.05 lies not only in its .db but also its .json files .
#7
looks rather to be the database update we did in 3.0.4...
I've reverted the update because it seems that actual databases load fine with the previous version

a new nightly build is out there to be tested
tinyMediaManager - THE media manager of your choice - available for Windows, macOS and Linux
Help us translate tinyMediaManager at Weblate | Translations at 66%
Found a bug or want to submit a feature request? Contact us at GitLab
#8
(2019-09-30, 13:14)mlaggner Wrote: looks rather to be the database update we did in 3.0.4...
I've reverted the update because it seems that actual databases load fine with the previous version

a new nightly build is out there to be tested
The nightly build of 2019/09/30 13:10, whose update log starts with "[2019-09-30] * fix: downgrade h2.mvstore to the latest stable build", works. TinyMM starts & functions OK.
#9
good to hear

looks like there is anything changed in the most recent version of the database engine. But since there is no need to switch to that, we can live with the older one Wink
tinyMediaManager - THE media manager of your choice - available for Windows, macOS and Linux
Help us translate tinyMediaManager at Weblate | Translations at 66%
Found a bug or want to submit a feature request? Contact us at GitLab
#10
little update:
could you provide me a corrupted database so I can get in touch with the devs of h2? maybe they can fix that in their software
tinyMediaManager - THE media manager of your choice - available for Windows, macOS and Linux
Help us translate tinyMediaManager at Weblate | Translations at 66%
Found a bug or want to submit a feature request? Contact us at GitLab
#11
(2019-09-30, 14:42)mlaggner Wrote: little update:
could you provide me a corrupted database so I can get in touch with the devs of h2? maybe they can fix that in their software
Posted in https://gitlab.com/tinyMediaManager/tiny...issues/663.
#12
ACCIDENTALLY DISCOVERED ISSUE:

In the course of testing v3.0.5 then going back to v3.0.4 then re-updating to v3.0.5-BUG FIXING, I made the curious discovery that copying over your .conf/.json files migrates some customizations but not all. Specifically, this affects both program customization (.json) and scrapers customization (.conf).

Logout Mark Read Team Forum Stats Members Help
TMM Won't launch properly anymore - some type of database corruption?0