Hi,
I've recently run into problems with indexes becoming corrupt after
unclean shutdowns. Basically:
1. Transaction 1 writes some data
2. Transaction 2 reads some data, and is left open
3. The database is shut down, with warnings about an open transaction
4. The database is opened.  Recovery executes, but it appears the
Lucence indexes are "doubled" - that is, where we used to have key =>
(value1), we now have key => (value1, value1).

I've attached a JUnit test case that hopefully reproduces this for
you.  I'm on Java 5, Mac OS 10.5, neo-1.0-b10.jar, and
index-util-0.8.jar

Obviously, the first step on my end is to make sure any open
transactions are closed before attempting a shutdown.  However, I'm
able to pretty reliably reproduce this problem in a much scarier way -
just killing a running Neo process via the Eclipse "Console" view "red
square" process stop button.  Amazingly, Eclipse doesn't properly shut
down processes properly when this button is used, so I can't count on
shutdown hooks:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016

What expectations should I have for corruption when a database +
indexes are .shutDown() with open transactions?
What expectations should I have for corruption when a database +
indexes are terminated abruptly (Eclipse Console, power outage, etc)?
Beyond proper transaction management, and ensuring shutDown() is
called, is there anything I should be doing to help protect this data?

Thanks,
Adam
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to