Hi, I have now a test case where a MVStore file can not be opened after an out of memory. It doesn't look like the file is corrupt, it's just that the recovery code can not deal with this case yet. The stack trace is:
Caused by: java.lang.IllegalStateException: Chunk 2 is invalid [1.4.187/6] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773) at org.h2.mvstore.MVStore.readStoreHeader(MVStore.java:695) at org.h2.mvstore.MVStore.<init>(MVStore.java:348) If you have stack traces of your failures (even better MVStore files), that would be great. Regards, Thomas On Saturday, June 6, 2015, Klaus Wuestefeld <[email protected]> wrote: > Thanks Thomas! I believe simulation is the way to go. It can give you > more coverage than trying to perform real power failures. > > On Fri, Jun 5, 2015 at 1:08 PM, Thomas Mueller > <[email protected] <javascript:;>> wrote: > > Hi, > > > > The test interrupts the thread, which will close the database file (as > > always with FileChannel). Subsequent close calls will fail, this is a bug > > that I need to fix. However, I don't think this will corrupt the database > > file. > > > > Interrupting the thread is one way to test it, killing the process is > > another. There are already such tests, and so far I couldn't reproduce > the > > problem. > > > > Additional tests are with a file system implementation that simulates > > re-ordering writes, and power failure. Simulating power failures I have, > but > > re-ordering writes is still missing. > > > > Then, real power failure tests are needed. This will require some work, > but > > I think it is important. I will work on that. > > > > Regards, > > Thomas > > > > > > > > On Tuesday, June 2, 2015, Nicolas Fortin (OrbisGIS) < > [email protected] <javascript:;>> > > wrote: > >> > >> Hi, > >> > >> I try to write the unit test with thread killing. As I can't reconnect > to > >> the DB I'm facing some problem to check if the database is corrupted. > (see > >> attached traceback) > >> > >> https://github.com/nicolas-f/h2database/tree/thread_kill_mvstore > >> > >> As I said before, I want to reproduce a problem of corrupted db we have > in > >> production when using this kind of "brutal" thread kill. > >> > >> regards, > >> > >> -- > >> > >> Nicolas Fortin > >> IRSTV FR CNRS 2488 > >> GIS http://orbisgis.org > >> Spatial DB http://h2gis.org > >> Noise http://noisemap.orbisgis.org > >> > >> > >> > >> Le jeudi 28 mai 2015 22:04:22 UTC+2, Thomas Mueller a écrit : > >>> > >>> Hi, > >>> > >>> That's very interesting. > >>> > >>> So far I know about a potential problem in case of power failure, and > I'm > >>> working on fix for that. This is related to write re-ordering. > Recovery is > >>> affected, and truncating the file needs to be delayed, but both should > be > >>> quite simple to fix. > >>> > >>> However, the problem you describe is not related to power failure. I > >>> would be very interested in a test case! > >>> > >>> Regards, > >>> Thomas > >>> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "H2 Database" group. > >> To unsubscribe from this group and stop receiving emails from it, send > an > >> email to [email protected] <javascript:;>. > >> To post to this group, send email to [email protected] > <javascript:;>. > >> Visit this group at http://groups.google.com/group/h2-database. > >> For more options, visit https://groups.google.com/d/optout. > > > > -- > > You received this message because you are subscribed to a topic in the > > Google Groups "H2 Database" group. > > To unsubscribe from this topic, visit > > https://groups.google.com/d/topic/h2-database/FPyYtNPbgJQ/unsubscribe. > > To unsubscribe from this group and all its topics, send an email to > > [email protected] <javascript:;>. > > To post to this group, send email to [email protected] > <javascript:;>. > > Visit this group at http://groups.google.com/group/h2-database. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Valeu, Klaus. > > -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:;>. > To post to this group, send email to [email protected] > <javascript:;>. > Visit this group at http://groups.google.com/group/h2-database. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
