Metabase Crashes H2 Database, v0.37.1

For no good reason Metabase V0.37.1 just stopped working.

No upgrades were done to Metabase or Java and the server has not shut down/rebooted/lost power.

Here’s what I get when I try to fire up Metabase now:

Metabase v0.37.1 (ba57ab6 release-x.37.x)

Copyright © 2020 Metabase, Inc.

Metabase Enterprise Edition extensions are NOT PRESENT.
2020-11-16 15:36:52,852 WARN metabase.core :: WARNING: You have enabled namespace tracing, which could log sensitive information like db passwords.
2020-11-16 15:36:52,853 INFO metabase.core :: Starting Metabase in STANDALONE mode
2020-11-16 15:36:52,918 INFO metabase.server :: Launching Embedded Jetty Webserver with config:
 {:port 3000}

2020-11-16 15:36:52,989 INFO metabase.core :: Starting Metabase version v0.37.1 (ba57ab6 release-x.37.x) ...
2020-11-16 15:36:53,056 INFO metabase.core :: System info:
 {"file.encoding" "UTF-8",
 "java.runtime.name" "Java(TM) SE Runtime Environment",
 "java.runtime.version" "1.8.0_201-b09",
 "java.vendor" "Oracle Corporation",
 "java.vendor.url" 
 "java.version" "1.8.0_201",
 "java.vm.name" "Java HotSpot(TM) 64-Bit Server VM",
 "java.vm.version" "25.201-b09",
 "os.name" "Linux",
 "os.version" "4.4.0-194-generic",
 "user.language" "en",
 "user.timezone" "Pacific/Honolulu"}

2020-11-16 15:36:53,059 INFO metabase.plugins :: Loading plugins in /apps/java/plugins...
2020-11-16 15:36:53,511 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :hive-like...
2020-11-16 15:36:54,957 INFO driver.impl :: Registered abstract driver :sql  🚚
Load driver :sql took 1.3 s
2020-11-16 15:36:54,974 INFO driver.impl :: Registered abstract driver :sql-jdbc (parents: [:sql]) 🚚
Load driver :sql-jdbc took 1.5 s
2020-11-16 15:36:54,980 INFO driver.impl :: Registered abstract driver :hive-like (parents: [:sql-jdbc]) 🚚
2020-11-16 15:36:54,982 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sparksql...
2020-11-16 15:36:54,984 INFO driver.impl :: Registered driver :sparksql (parents: [:hive-like]) 🚚
2020-11-16 15:36:54,995 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sqlserver...
2020-11-16 15:36:54,997 INFO driver.impl :: Registered driver :sqlserver (parents: [:sql-jdbc]) 🚚
2020-11-16 15:36:55,003 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :presto...
2020-11-16 15:36:55,005 INFO driver.impl :: Registered driver :presto (parents: [:sql]) 🚚
2020-11-16 15:36:55,011 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sqlite...
2020-11-16 15:36:55,013 INFO driver.impl :: Registered driver :sqlite (parents: [:sql-jdbc]) 🚚
2020-11-16 15:36:55,050 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :snowflake...
2020-11-16 15:36:55,051 INFO driver.impl :: Registered driver :snowflake (parents: [:sql-jdbc]) 🚚
2020-11-16 15:36:55,060 INFO plugins.dependencies :: Metabase cannot initialize plugin Metabase Oracle Driver due to required dependencies. Metabase requires the Oracle JDBC driver in order to connect to Oracle databases, but w  e can't ship it as part of Metabase due to licensing restrictions. See https://metabase.com/docs/latest/administration-guide/databases/oracle.html for more details.

2020-11-16 15:36:55,064 INFO plugins.dependencies :: Metabase Oracle Driver dependency {:class oracle.jdbc.OracleDriver} satisfied? false
2020-11-16 15:36:55,065 INFO plugins.dependencies :: Plugins with unsatisfied deps: ["Metabase Oracle Driver"]
2020-11-16 15:36:55,070 INFO plugins.dependencies :: Plugin 'Metabase BigQuery Driver' depends on plugin 'Metabase Google Drivers Shared Dependencies'
2020-11-16 15:36:55,071 INFO plugins.dependencies :: Metabase BigQuery Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? false
2020-11-16 15:36:55,072 INFO plugins.dependencies :: Plugins with unsatisfied deps: ["Metabase Oracle Driver" "Metabase BigQuery Driver"]
2020-11-16 15:36:55,081 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :redshift...
2020-11-16 15:36:55,099 INFO driver.impl :: Registered driver :postgres (parents: [:sql-jdbc]) 🚚
Load driver :postgres took 39.8 ms
2020-11-16 15:36:55,123 INFO driver.impl :: Registered driver :redshift (parents: [:postgres]) 🚚
2020-11-16 15:36:55,133 INFO plugins.dependencies :: Plugin 'Metabase Google Analytics Driver' depends on plugin 'Metabase Google Drivers Shared Dependencies'
2020-11-16 15:36:55,134 INFO plugins.dependencies :: Metabase Google Analytics Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? false
2020-11-16 15:36:55,135 INFO plugins.dependencies :: Plugins with unsatisfied deps: ["Metabase Oracle Driver" "Metabase BigQuery Driver" "Metabase Google Analytics Driver"]
2020-11-16 15:36:55,141 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :druid...
2020-11-16 15:36:55,143 INFO driver.impl :: Registered driver :druid  🚚
2020-11-16 15:36:55,158 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :mongo...
2020-11-16 15:36:55,159 INFO driver.impl :: Registered driver :mongo  🚚
2020-11-16 15:36:55,167 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :google...
2020-11-16 15:36:55,169 INFO driver.impl :: Registered abstract driver :google  🚚
2020-11-16 15:36:55,171 INFO plugins.dependencies :: Metabase BigQuery Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? true
2020-11-16 15:36:55,173 INFO plugins.dependencies :: Metabase Google Analytics Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? true
2020-11-16 15:36:55,175 DEBUG plugins.initialize :: Dependencies satisfied; these plugins will now be loaded: ["Metabase Google Analytics Driver" "Metabase BigQuery Driver"]
2020-11-16 15:36:55,176 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :googleanalytics...
2020-11-16 15:36:55,178 INFO driver.impl :: Registered driver :googleanalytics (parents: [:google]) 🚚
2020-11-16 15:36:55,181 WARN plugins.lazy-loaded-driver :: Warning: plugin manifest for :bigquery does not include connection properties
2020-11-16 15:36:55,182 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :bigquery...
2020-11-16 15:36:55,184 INFO driver.impl :: Registered driver :bigquery (parents: [:sql :google]) 🚚
2020-11-16 15:36:55,191 INFO plugins.dependencies :: Metabase cannot initialize plugin Metabase Vertica Driver due to required dependencies. Metabase requires the Vertica JDBC driver in order to connect to Vertica databases, bu  t we can't ship it as part of Metabase due to licensing restrictions. See https://metabase.com/docs/latest/administration-guide/databases/vertica.html for more details.

2020-11-16 15:36:55,192 INFO plugins.dependencies :: Metabase Vertica Driver dependency {:class com.vertica.jdbc.Driver} satisfied? false
2020-11-16 15:36:55,194 INFO plugins.dependencies :: Plugins with unsatisfied deps: ["Metabase Oracle Driver" "Metabase Vertica Driver"]
2020-11-16 15:36:55,204 INFO driver.impl :: Registered driver :h2 (parents: [:sql-jdbc]) 🚚
2020-11-16 15:36:55,237 INFO driver.impl :: Registered driver :mysql (parents: [:sql-jdbc]) 🚚
2020-11-16 15:36:55,264 INFO metabase.core :: Setting up and migrating Metabase DB. Please sit tight, this may take a minute...
2020-11-16 15:36:55,266 WARN metabase.db :: WARNING: Using Metabase with an H2 application database is not recommended for production deployments. For production deployments, we highly recommend using Postgres, MySQL, or MariaD  B instead. If you decide to continue to use H2, please be sure to back up the database file regularly. For more information, see https://metabase.com/docs/latest/operations-guide/migrating-from-h2.html
2020-11-16 15:36:55,272 INFO metabase.db :: Verifying h2 Database Connection ...
2020-11-16 15:36:55,277 INFO driver.impl :: Initializing driver :sql...
2020-11-16 15:36:55,278 INFO driver.impl :: Initializing driver :sql-jdbc...
2020-11-16 15:36:55,279 INFO driver.impl :: Initializing driver :h2...
2020-11-16 15:36:55,520 ERROR driver.util :: Database connection error
org.h2.jdbc.JdbcSQLException: IO Exception: "Closing" [90028-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) ~[metabase.jar:?]
        at org.h2.message.DbException.get(DbException.java:168) ~[metabase.jar:?]
        at org.h2.mvstore.db.MVTableEngine$Store.close(MVTableEngine.java:397) ~[metabase.jar:?]
        at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1439) ~[metabase.jar:?]
        at org.h2.engine.Database.openDatabase(Database.java:318) ~[metabase.jar:?]
        at org.h2.engine.Database.<init>(Database.java:280) ~[metabase.jar:?]
        at org.h2.engine.Engine.openSession(Engine.java:66) ~[metabase.jar:?]
        at org.h2.engine.Engine.openSession(Engine.java:179) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSession(Engine.java:140) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSession(Engine.java:28) ~[metabase.jar:?]
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351) ~[metabase.jar:?]
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124) ~[metabase.jar:?]
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103) ~[metabase.jar:?]
        at org.h2.Driver.connect(Driver.java:69) ~[metabase.jar:?]
        at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_201]
        at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[?:1.8.0_201]
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271) ~[metabase.jar:?]
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250) ~[metabase.jar:?]
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411) ~[metabase.jar:?]
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274) ~[metabase.jar:?]
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111) ~[metabase.jar:?]
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:192) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:187) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc$fn__78120.invokeStatic(sql_jdbc.clj:36) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc$fn__78120.invoke(sql_jdbc.clj:34) ~[metabase.jar:?]
        at clojure.lang.MultiFn.invoke(MultiFn.java:234) ~[metabase.jar:?]
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__22524.invoke(util.clj:35) ~[metabase.jar:?]
        at metabase.util$do_with_timeout$fn__10218.invoke(util.clj:324) ~[metabase.jar:?]
        at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030) ~[metabase.jar:?]
        at clojure.lang.AFn.call(AFn.java:18) ~[metabase.jar:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_201]
Caused by: java.lang.IllegalStateException: File corrupted in chunk 409624, expected page length 4..128, got 93399808 [1.4.197/6]
        at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:870) ~[metabase.jar:?]
        at org.h2.mvstore.Page.read(Page.java:652) ~[metabase.jar:?]
        at org.h2.mvstore.Page.read(Page.java:186) ~[metabase.jar:?]
        at org.h2.mvstore.MVStore.readPage(MVStore.java:1936) ~[metabase.jar:?]
        at org.h2.mvstore.MVMap.readPage(MVMap.java:698) ~[metabase.jar:?]
        at org.h2.mvstore.MVMap.setRootPos(MVMap.java:708) ~[metabase.jar:?]
        at org.h2.mvstore.MVStore.openMap(MVStore.java:474) ~[metabase.jar:?]
        at org.h2.mvstore.MVStoreTool.compact(MVStoreTool.java:529) ~[metabase.jar:?]
        at org.h2.mvstore.MVStoreTool.compact(MVStoreTool.java:496) ~[metabase.jar:?]
        at org.h2.mvstore.MVStoreTool.compact(MVStoreTool.java:442) ~[metabase.jar:?]
        at org.h2.mvstore.db.MVTableEngine$Store.close(MVTableEngine.java:386) ~[metabase.jar:?]
        ... 37 more
2020-11-16 15:36:55,548 ERROR metabase.core :: Metabase Initialization FAILED
java.lang.Exception: IO Exception: "Closing" [90028-197]
        at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:40) ~[metabase.jar:?]
        at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:23) ~[metabase.jar:?]
        at clojure.lang.RestFn.invoke(RestFn.java:442) ~[metabase.jar:?]
        at clojure.lang.Var.invoke(Var.java:393) ~[metabase.jar:?]
        at metabase.db$fn__21781$verify_db_connection__21790$fn__21793$fn__21794.invoke(db.clj:316) ~[metabase.jar:?]
        at metabase.db$fn__21781$verify_db_connection__21790$fn__21793.invoke(db.clj:315) ~[metabase.jar:?]
        at metabase.db$fn__21781$verify_db_connection__21790.invoke(db.clj:307) ~[metabase.jar:?]
        at metabase.db$fn__21781$verify_db_connection__21790$fn__21791.invoke(db.clj:310) ~[metabase.jar:?]
        at metabase.db$fn__21781$verify_db_connection__21790.invoke(db.clj:307) ~[metabase.jar:?]
        at metabase.db$setup_db_BANG__STAR_$fn__21829.invoke(db.clj:352) ~[metabase.jar:?]
        at metabase.util$do_with_us_locale.invokeStatic(util.clj:670) ~[metabase.jar:?]
        at metabase.util$do_with_us_locale.invoke(util.clj:656) ~[metabase.jar:?]
        at metabase.db$setup_db_BANG__STAR_.invokeStatic(db.clj:351) ~[metabase.jar:?]
        at metabase.db$setup_db_BANG__STAR_.invoke(db.clj:346) ~[metabase.jar:?]
        at metabase.db$setup_db_from_env_BANG_.invokeStatic(db.clj:365) ~[metabase.jar:?]
        at metabase.db$setup_db_from_env_BANG_.invoke(db.clj:358) ~[metabase.jar:?]
        at metabase.db$setup_db_BANG_$fn__21834.invoke(db.clj:375) ~[metabase.jar:?]
        at metabase.db$setup_db_BANG_.invokeStatic(db.clj:373) ~[metabase.jar:?]
        at metabase.db$setup_db_BANG_.invoke(db.clj:368) ~[metabase.jar:?]
        at metabase.core$init_BANG_.invokeStatic(core.clj:96) ~[metabase.jar:?]
        at metabase.core$init_BANG_.invoke(core.clj:75) ~[metabase.jar:?]
        at metabase.core$start_normally.invokeStatic(core.clj:140) [metabase.jar:?]
        at metabase.core$start_normally.invoke(core.clj:134) [metabase.jar:?]
        at metabase.core$_main.invokeStatic(core.clj:173) [metabase.jar:?]
        at metabase.core$_main.doInvoke(core.clj:167) [metabase.jar:?]
        at clojure.lang.RestFn.invoke(RestFn.java:397) [metabase.jar:?]
        at clojure.lang.AFn.applyToHelper(AFn.java:152) [metabase.jar:?]
        at clojure.lang.RestFn.applyTo(RestFn.java:132) [metabase.jar:?]
        at metabase.core.main(Unknown Source) [metabase.jar:?]
Caused by: org.h2.jdbc.JdbcSQLException: IO Exception: "Closing" [90028-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) ~[metabase.jar:?]
        at org.h2.message.DbException.get(DbException.java:168) ~[metabase.jar:?]
        at org.h2.mvstore.db.MVTableEngine$Store.close(MVTableEngine.java:397) ~[metabase.jar:?]
        at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1439) ~[metabase.jar:?]
        at org.h2.engine.Database.openDatabase(Database.java:318) ~[metabase.jar:?]
        at org.h2.engine.Database.<init>(Database.java:280) ~[metabase.jar:?]
        at org.h2.engine.Engine.openSession(Engine.java:66) ~[metabase.jar:?]
        at org.h2.engine.Engine.openSession(Engine.java:179) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSession(Engine.java:140) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSession(Engine.java:28) ~[metabase.jar:?]
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351) ~[metabase.jar:?]
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124) ~[metabase.jar:?]
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103) ~[metabase.jar:?]
        at org.h2.Driver.connect(Driver.java:69) ~[metabase.jar:?]
        at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_201]
        at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[?:1.8.0_201]
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271) ~[metabase.jar:?]
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250) ~[metabase.jar:?]
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411) ~[metabase.jar:?]
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274) ~[metabase.jar:?]
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111) ~[metabase.jar:?]
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:192) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:187) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc$fn__78120.invokeStatic(sql_jdbc.clj:36) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc$fn__78120.invoke(sql_jdbc.clj:34) ~[metabase.jar:?]
        at clojure.lang.MultiFn.invoke(MultiFn.java:234) ~[metabase.jar:?]
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__22524.invoke(util.clj:35) ~[metabase.jar:?]
        at metabase.util$do_with_timeout$fn__10218.invoke(util.clj:324) ~[metabase.jar:?]
        at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030) ~[metabase.jar:?]
        at clojure.lang.AFn.call(AFn.java:18) ~[metabase.jar:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_201]
Caused by: java.lang.IllegalStateException: File corrupted in chunk 409624, expected page length 4..128, got 93399808 [1.4.197/6]
        at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:870) ~[metabase.jar:?]
        at org.h2.mvstore.Page.read(Page.java:652) ~[metabase.jar:?]
        at org.h2.mvstore.Page.read(Page.java:186) ~[metabase.jar:?]
        at org.h2.mvstore.MVStore.readPage(MVStore.java:1936) ~[metabase.jar:?]
        at org.h2.mvstore.MVMap.readPage(MVMap.java:698) ~[metabase.jar:?]
        at org.h2.mvstore.MVMap.setRootPos(MVMap.java:708) ~[metabase.jar:?]
        at org.h2.mvstore.MVStore.openMap(MVStore.java:474) ~[metabase.jar:?]
        at org.h2.mvstore.MVStoreTool.compact(MVStoreTool.java:529) ~[metabase.jar:?]
        at org.h2.mvstore.MVStoreTool.compact(MVStoreTool.java:496) ~[metabase.jar:?]
        at org.h2.mvstore.MVStoreTool.compact(MVStoreTool.java:442) ~[metabase.jar:?]
        at org.h2.mvstore.db.MVTableEngine$Store.close(MVTableEngine.java:386) ~[metabase.jar:?]
        at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1439) ~[metabase.jar:?]
        at org.h2.engine.Database.openDatabase(Database.java:318) ~[metabase.jar:?]
        at org.h2.engine.Database.<init>(Database.java:280) ~[metabase.jar:?]
        at org.h2.engine.Engine.openSession(Engine.java:66) ~[metabase.jar:?]
        at org.h2.engine.Engine.openSession(Engine.java:179) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSession(Engine.java:140) ~[metabase.jar:?]
        at org.h2.engine.Engine.createSession(Engine.java:28) ~[metabase.jar:?]
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351) ~[metabase.jar:?]
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124) ~[metabase.jar:?]
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103) ~[metabase.jar:?]
        at org.h2.Driver.connect(Driver.java:69) ~[metabase.jar:?]
        at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_201]
        at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[?:1.8.0_201]
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271) ~[metabase.jar:?]
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250) ~[metabase.jar:?]
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411) ~[metabase.jar:?]
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274) ~[metabase.jar:?]
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111) ~[metabase.jar:?]
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160) ~[metabase.jar:?]
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:192) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:187) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc$fn__78120.invokeStatic(sql_jdbc.clj:36) ~[metabase.jar:?]
        at metabase.driver.sql_jdbc$fn__78120.invoke(sql_jdbc.clj:34) ~[metabase.jar:?]
        at clojure.lang.MultiFn.invoke(MultiFn.java:234) ~[metabase.jar:?]
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__22524.invoke(util.clj:35) ~[metabase.jar:?]
        at metabase.util$do_with_timeout$fn__10218.invoke(util.clj:324) ~[metabase.jar:?]
        at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030) ~[metabase.jar:?]
        at clojure.lang.AFn.call(AFn.java:18) ~[metabase.jar:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_201]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_201]
2020-11-16 15:36:55,555 INFO metabase.core :: Metabase Shutting Down ...
2020-11-16 15:36:55,556 INFO metabase.server :: Shutting Down Embedded Jetty Webserver
2020-11-16 15:36:55,567 INFO metabase.core :: Metabase Shutdown COMPLETE

Any assistance or pointers as to what I can do to get running again would be very helpful! I’ve tried migrating to MySQL and that didn’t work either (Table not found errors and Null:IO Exception errors).

Thanks!

Hi @NTBG

You have ended up with a corrupted H2 database (File corrupted in chunk 409624).
You cannot migrate to MySQL/Postgres before that is resolved.

Have a look at this:
https://www.metabase.com/docs/latest/troubleshooting-guide/application-database.html#metabase-h2-application-database-gets-corrupted

After you have resolved the corruption (or restored from a backup), then upgrade your Java version and migrate away from H2:
https://www.metabase.com/docs/latest/operations-guide/java-versions.html
https://www.metabase.com/docs/latest/operations-guide/migrating-from-h2.html

Hello and many thanks for your response.

I’ve tried the options listed at https://www.metabase.com/docs/latest/troubleshooting-guide/application-database.html#metabase-h2-application-database-gets-corrupted and unfortunately it errors out when running the recovery script.

Are there any other options available for H2 database recovery after corruption?

Thanks again!

@NTBG Without the error, it’s difficult to help. The H2 database is a commonly used database, so you can try searching the internet for h2 database recovery

Unfortunately, it’s the same error message in the same chunk…

#java -cp metabase.jar org.h2.tools.Recover
Exception in thread "main" java.lang.IllegalStateException: File corrupted in chunk 409624, expected page length 4..32, got -2139062240 [1.4.197/6]
        at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:870)
        at org.h2.mvstore.Page.read(Page.java:652)
        at org.h2.mvstore.Page.read(Page.java:186)
        at org.h2.mvstore.MVStore.readPage(MVStore.java:1936)
        at org.h2.mvstore.MVMap.readPage(MVMap.java:698)
        at org.h2.mvstore.Page.getChildPage(Page.java:208)
        at org.h2.mvstore.Cursor.fetchNext(Cursor.java:150)
        at org.h2.mvstore.Cursor.next(Cursor.java:50)
        at org.h2.mvstore.MVMap$2$1.next(MVMap.java:841)
        at org.h2.mvstore.MVMap$2$1.next(MVMap.java:832)
        at org.h2.tools.Recover.dumpLobMaps(Recover.java:706)
        at org.h2.tools.Recover.dumpMVStoreFile(Recover.java:608)
        at org.h2.tools.Recover.process(Recover.java:350)
        at org.h2.tools.Recover.runTool(Recover.java:197)
        at org.h2.tools.Recover.main(Recover.java:160)

Looks like I’m hosed since there was no backup of the H2 file.

@NTBG Yeah, that looks pretty bad. Do some searching on the internet, but don’t put your hopes up too much.