[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  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 

> 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:

Map map = new HashMap();
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 wrote:

> On Wed, Oct 13, 2010 at 4:11 PM, Adam Lehenbauer 
> 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