[Neo4j] EmbeddedGraphDatabase shutdown leaves a Timer thread running

2010-10-13 Thread Adam Lehenbauer
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

2010-10-13 Thread Chris Gioran
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

2010-10-13 Thread Mattias Persson
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

2010-10-13 Thread Adam Lehenbauer
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