[Neo4j] EmbeddedGraphDatabase shutdown leaves a Timer thread running
I think I have the Getting Started example working, but after it creates the nodes and shuts down, my JVM won't exit because there is a non-daemon Timer thread running. I have an example class with a main() that is copied near-verbatim from http://wiki.neo4j.org/content/Getting_Started_Guide except for the db path and a few extra System.outs. Everything seems to work normally, but after shutting down the EmbeddedGraphDatabase the JVM will not exit. A jstack shows a running java.util.TimerThread, which I assume is started by the database. Its stack is: --- Timer-0 prio=10 tid=0x7f59c0056800 nid=0xa29 in Object.wait() [0x7f59bf6d5000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) --- I'm using the neo4j maven dependency: org.neo4j.neo4j, version=1.2.M01, type=pom. When I changed this to neo4j-kernel, version=1.0 the JVM exited as expected (no code change on my end). Does anyone have any idea why this is happening? Adam ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] EmbeddedGraphDatabase shutdown leaves a Timer thread running
On Wed, Oct 13, 2010 at 4:11 PM, Adam Lehenbauer a...@fixflyer.com wrote: I think I have the Getting Started example working, but after it creates the nodes and shuts down, my JVM won't exit because there is a non-daemon Timer thread running. I have an example class with a main() that is copied near-verbatim from http://wiki.neo4j.org/content/Getting_Started_Guide except for the db path and a few extra System.outs. Everything seems to work normally, but after shutting down the EmbeddedGraphDatabase the JVM will not exit. A jstack shows a running java.util.TimerThread, which I assume is started by the database. Its stack is: --- Timer-0 prio=10 tid=0x7f59c0056800 nid=0xa29 in Object.wait() [0x7f59bf6d5000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) --- I'm using the neo4j maven dependency: org.neo4j.neo4j, version=1.2.M01, type=pom. When I changed this to neo4j-kernel, version=1.0 the JVM exited as expected (no code change on my end). Does anyone have any idea why this is happening? Adam Hi there, Could you run it with a configuration setting of cache_type=soft and inform on the result? Also, describe a bit your environment (CPU, OS, JVM) cheers, CG ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] EmbeddedGraphDatabase shutdown leaves a Timer thread running
This is an identified problem and it will be fixed soon, available in the next milestone as well as snapshot builds. Until then System.exit( 0 ) is your friend. 2010/10/13 Adam Lehenbauer a...@fixflyer.com I think I have the Getting Started example working, but after it creates the nodes and shuts down, my JVM won't exit because there is a non-daemon Timer thread running. I have an example class with a main() that is copied near-verbatim from http://wiki.neo4j.org/content/Getting_Started_Guide except for the db path and a few extra System.outs. Everything seems to work normally, but after shutting down the EmbeddedGraphDatabase the JVM will not exit. A jstack shows a running java.util.TimerThread, which I assume is started by the database. Its stack is: --- Timer-0 prio=10 tid=0x7f59c0056800 nid=0xa29 in Object.wait() [0x7f59bf6d5000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) --- I'm using the neo4j maven dependency: org.neo4j.neo4j, version=1.2.M01, type=pom. When I changed this to neo4j-kernel, version=1.0 the JVM exited as expected (no code change on my end). Does anyone have any idea why this is happening? Adam ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Mattias Persson, [matt...@neotechnology.com] Hacker, Neo Technology www.neotechnology.com ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo4j] EmbeddedGraphDatabase shutdown leaves a Timer thread running
I added: MapString, String map = new HashMapString, String(); map.put(cache_type, soft); and gave the map to the EmbeddedGraphDatabase constructor; no change in behavior. I'm running: Java HotSpot, 1.6.0_18 64 bit Ubuntu 10.04 (lucid) I've got 4 AMD Phenom cores. On Wed, Oct 13, 2010 at 9:34 AM, Chris Gioran chris.gio...@gmail.comwrote: On Wed, Oct 13, 2010 at 4:11 PM, Adam Lehenbauer a...@fixflyer.com wrote: I think I have the Getting Started example working, but after it creates the nodes and shuts down, my JVM won't exit because there is a non-daemon Timer thread running. I have an example class with a main() that is copied near-verbatim from http://wiki.neo4j.org/content/Getting_Started_Guide except for the db path and a few extra System.outs. Everything seems to work normally, but after shutting down the EmbeddedGraphDatabase the JVM will not exit. A jstack shows a running java.util.TimerThread, which I assume is started by the database. Its stack is: --- Timer-0 prio=10 tid=0x7f59c0056800 nid=0xa29 in Object.wait() [0x7f59bf6d5000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked 0x7f5a1ed37270 (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) --- I'm using the neo4j maven dependency: org.neo4j.neo4j, version=1.2.M01, type=pom. When I changed this to neo4j-kernel, version=1.0 the JVM exited as expected (no code change on my end). Does anyone have any idea why this is happening? Adam Hi there, Could you run it with a configuration setting of cache_type=soft and inform on the result? Also, describe a bit your environment (CPU, OS, JVM) cheers, CG ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user