View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003382 | SymmetricDS | Bug | public | 2018-01-19 16:29 | 2021-11-17 16:00 |
Reporter | andythuering | Assigned To | pmarzullo | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.9.2 | ||||
Target Version | 3.13.0 | Fixed in Version | 3.13.0 | ||
Summary | 0003382: MV-Store DB corrupt after stopping SymmetricDS replication software | ||||
Description | Using the db replication software SymmetricDS with a MV-Store DB leads to DB corruption and crash of h2 after SymmetricDS is stopped. H2 Versions 1.4.195 and 1.4.196 are affected, older versions were not tested. Migration to PageStore is a workaround. After starting h2 again reconnection e.g. via Shell works sometimes. On disconnect the following stack trace is shown: sql> quit SQL Exception: General error: "java.lang.IllegalStateException: This map is closed [1.4.196/4]" [50000-196] org.h2.jdbc.JdbcSQLException: General error: "java.lang.IllegalStateException: This map is closed [1.4.196/4]" [50000-196] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:168) at org.h2.message.DbException.convert(DbException.java:295) at org.h2.server.TcpServerThread.sendError(TcpServerThread.java:220) at org.h2.server.TcpServerThread.run(TcpServerThread.java:160) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalStateException: This map is closed [1.4.196/4] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:765) at org.h2.mvstore.MVMap.beforeWrite(MVMap.java:1044) at org.h2.mvstore.MVMap.remove(MVMap.java:542) at org.h2.store.LobStorageMap.removeLob(LobStorageMap.java:342) at org.h2.store.LobStorageMap.removeLob(LobStorageMap.java:335) at org.h2.value.ValueLobDb.remove(ValueLobDb.java:233) at org.h2.engine.Session.removeTemporaryLobs(Session.java:702) at org.h2.engine.Session.close(Session.java:848) at org.h2.engine.Database.closeOpenFilesAndUnlock(Database.java:1412) at org.h2.engine.Database.close(Database.java:1297) at org.h2.engine.Database.removeSession(Database.java:1179) at org.h2.engine.Session.close(Session.java:851) at org.h2.server.TcpServerThread.closeSession(TcpServerThread.java:184) at org.h2.server.TcpServerThread.process(TcpServerThread.java:290) at org.h2.server.TcpServerThread.run(TcpServerThread.java:158) ... 1 more at org.h2.engine.SessionRemote.done(SessionRemote.java:629) at org.h2.engine.SessionRemote.close(SessionRemote.java:575) at org.h2.jdbc.JdbcConnection.close(JdbcConnection.java:395) at org.h2.tools.Shell.promptLoop(Shell.java:313) at org.h2.tools.Shell.runTool(Shell.java:152) at org.h2.tools.Shell.main(Shell.java:81) After this a restart of h2 is needed to get a connection again to the database, connections are no more possible otherwise. I suppose that SymmetricDS does not close the connections correctly, but this should not lead to a database corruption. The replicated table has some lob fields. | ||||
Steps To Reproduce | Use h2 database version 1.4.195 or 1.4.196, create a database with the MV-storage engine. Establish a table replication with a table which contains lob fields (not sure if the cause has to to with lobs). Quit SymDS, try reconnecting with a db client to the database. H2 has crashed and a reconnection only works after a restart of h2. On quitting a connection always a "This map is closed" stacktrace occurs and a restart of h2 is needed. Is it possible that SymDS does not close the connections to the db properly on exit? | ||||
Tags | sym/sym_service | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2018-01-19 16:29 | andythuering | New Issue | |
2019-04-24 17:15 | elong | Relationship added | related to 0003897 |
2019-04-24 17:16 | elong | Tag Attached: sym/sym_service | |
2019-05-13 18:26 | elong | Assigned To | => pmarzullo |
2019-05-13 18:26 | elong | Status | new => assigned |
2019-05-13 18:26 | elong | Target Version | => 3.10.3 |
2019-06-24 17:45 | elong | Target Version | 3.10.3 => 3.10.4 |
2019-08-09 19:41 | elong | Target Version | 3.10.4 => 3.10.5 |
2019-10-31 14:59 | admin | Target Version | 3.10.5 => 3.10.6 |
2019-11-14 19:47 | elong | Target Version | 3.10.6 => 3.10.7 |
2019-12-09 15:25 | admin | Target Version | 3.10.7 => 3.10.8 |
2020-01-02 14:40 | admin | Target Version | 3.10.8 => 3.10.9 |
2020-01-22 19:03 | elong | Target Version | 3.10.9 => 3.10.10 |
2020-02-14 13:46 | elong | Target Version | 3.10.10 => 3.10.11 |
2020-03-16 20:10 | admin | Target Version | 3.10.11 => 3.12.0 |
2020-05-26 12:27 | elong | Target Version | 3.12.0 => 3.13.0 |
2021-06-14 19:05 | pmarzullo | Status | assigned => resolved |
2021-06-14 19:05 | pmarzullo | Resolution | open => fixed |
2021-06-14 19:05 | pmarzullo | Fixed in Version | => 3.13.0 |
2021-11-17 16:00 | admin | Status | resolved => closed |