EmmanuelOga / hypergraphdb

Automatically exported from code.google.com/p/hypergraphdb
1 stars 0 forks source link

Shutdown sometimes does not cause the JVM to exit. #72

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
It sometimes occurs with Protege Plugins 0.9.8 release.

We expect the Process to shut down completely after user selects close.

Might be that we have parallel close calls.

Original issue reported on code.google.com by thomas.h...@gmail.com on 14 Feb 2012 at 11:31

GoogleCodeExporter commented 9 years ago
Does that still happen? Any way I can get a thread dump of the hanged process 
state?

Original comment by borislav...@gmail.com on 7 Jul 2012 at 4:17

GoogleCodeExporter commented 9 years ago
Next time I'll see it happen, I'll do a thread dump and send it to you!

Original comment by thomas.h...@gmail.com on 9 Jul 2012 at 7:50

GoogleCodeExporter commented 9 years ago
I have a similar problem: I instantiate HyperGraph using this code:
HyperGraph createHyperGraphDB(String dbPath) throws IOException {
    HyperGraph graphDb = new HyperGraph(dbPath);
    registerShutdownHook(graphDb);
    return graphDb;
}

private static void registerShutdownHook(final HyperGraph graphDb) {
    Runtime.getRuntime().addShutdownHook(new Thread() {
        @Override
        public void run() {
            graphDb.close();
        }
    });
}

The application then deadlocks on shutdown:
Name: Thread-4
State: BLOCKED on java.lang.Class@44f44758 owned by: Thread-2
Total blocked: 2  Total waited: 1

Stack trace: 
org.hypergraphdb.HGEnvironment.getMemoryWarningSystem(HGEnvironment.java:68)
org.hypergraphdb.cache.MRUCache.close(MRUCache.java:446)
org.hypergraphdb.cache.WeakRefAtomCache.close(WeakRefAtomCache.java:395)
org.hypergraphdb.HyperGraph.close(HyperGraph.java:412)
   - locked java.lang.Object@7261502c
info.gehrels.diplomarbeit.hypergraphdb.HyperGraphDBHelper$1.run(HyperGraphDBHelp
er.java:19)

Name: Thread-2
State: BLOCKED on java.lang.Object@7261502c owned by: Thread-4
Total blocked: 1  Total waited: 0

Stack trace: 
org.hypergraphdb.HyperGraph.close(HyperGraph.java:407)
org.hypergraphdb.HGEnvironment.closeAll(HGEnvironment.java:233)
   - locked java.lang.Class@44f44758
org.hypergraphdb.HGEnvironment$OnShutdown.run(HGEnvironment.java:264)
java.lang.Thread.run(Thread.java:722)

Original comment by google-a...@gehrels.info on 11 Dec 2012 at 4:57

GoogleCodeExporter commented 9 years ago
There's some deadlock going, so I'd need a full thread dump (all threads), at 
least once, but preferably a couple spaced within some time intervals. 

In any case, the issue seems two happen when there are multiple concurrent 
calls to HyperGraph.close. Please note that you don't need to create shutdown 
hook to close the graph as this is already done in the HGEnvironment. Perhaps 
that's what's causing the conflict. Does it happen consistently for you or is 
it intermittent?

Original comment by borislav...@gmail.com on 12 Dec 2012 at 4:08

GoogleCodeExporter commented 9 years ago
2012-12-12 14:18:10
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.1-b03 mixed mode):

"RMI TCP Connection(5)-10.100.239.157" daemon prio=6 tid=0x000000000e2e1800 
nid=0x10ac in Object.wait() [0x0000000010e0d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000da726470> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:435)
    - locked <0x00000000da726470> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:227)
    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:274)
    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1253)
    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1251)
    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1257)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
    at sun.rmi.transport.Transport$1.run(Transport.java:177)
    at sun.rmi.transport.Transport$1.run(Transport.java:174)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"RMI TCP Connection(idle)" daemon prio=6 tid=0x000000000e2e1000 nid=0x13fc 
waiting on condition [0x0000000010c7e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000d9c481f8> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"RMI TCP Connection(idle)" daemon prio=6 tid=0x000000000deeb800 nid=0xcf0 
waiting on condition [0x000000001072e000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000d9c481f8> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"JMX server connection timeout 27" daemon prio=6 tid=0x000000000deeb000 
nid=0xf34 in Object.wait() [0x00000000100af000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000da6689f0> (a [I)
    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)
    - locked <0x00000000da6689f0> (a [I)
    at java.lang.Thread.run(Thread.java:722)

"RMI Scheduler(0)" daemon prio=6 tid=0x000000000deea000 nid=0x954 waiting on 
condition [0x00000000108ff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000d9c5f738> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"RMI TCP Accept-0" daemon prio=6 tid=0x000000000dee8800 nid=0x80 runnable 
[0x000000000fe6e000]
   java.lang.Thread.State: RUNNABLE
    at java.net.DualStackPlainSocketImpl.accept0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:121)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:183)
    - locked <0x00000000d9c63868> (a java.net.SocksSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:522)
    at java.net.ServerSocket.accept(ServerSocket.java:490)
    at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:387)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:359)
    at java.lang.Thread.run(Thread.java:722)

"Thread-2" prio=6 tid=0x000000000dee7800 nid=0x6dc waiting for monitor entry 
[0x00000000103bf000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.hypergraphdb.HyperGraph.close(HyperGraph.java:407)
    - waiting to lock <0x00000000841d7d88> (a java.lang.Object)
    at org.hypergraphdb.HGEnvironment.closeAll(HGEnvironment.java:233)
    - locked <0x00000000841d2748> (a java.lang.Class for org.hypergraphdb.HGEnvironment)
    at org.hypergraphdb.HGEnvironment$OnShutdown.run(HGEnvironment.java:264)
    at java.lang.Thread.run(Thread.java:722)

"Thread-4" prio=6 tid=0x000000000dee7000 nid=0xfb4 waiting for monitor entry 
[0x000000001020f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.hypergraphdb.HGEnvironment.getMemoryWarningSystem(HGEnvironment.java:68)
    - waiting to lock <0x00000000841d2748> (a java.lang.Class for org.hypergraphdb.HGEnvironment)
    at org.hypergraphdb.cache.MRUCache.close(MRUCache.java:446)
    at org.hypergraphdb.cache.WeakRefAtomCache.close(WeakRefAtomCache.java:395)
    at org.hypergraphdb.HyperGraph.close(HyperGraph.java:412)
    - locked <0x00000000841d7d88> (a java.lang.Object)
    at info.gehrels.diplomarbeit.hypergraphdb.HyperGraphDBHelper$1.run(HyperGraphDBHelper.java:24)

"DestroyJavaVM" prio=6 tid=0x000000000dee6000 nid=0x968 in Object.wait() 
[0x000000000223e000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000083f7f240> (a info.gehrels.diplomarbeit.hypergraphdb.HyperGraphDBHelper$1)
    at java.lang.Thread.join(Thread.java:1258)
    - locked <0x0000000083f7f240> (a info.gehrels.diplomarbeit.hypergraphdb.HyperGraphDBHelper$1)
    at java.lang.Thread.join(Thread.java:1332)
    at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)
    at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
    at java.lang.Shutdown.runHooks(Shutdown.java:123)
    at java.lang.Shutdown.sequence(Shutdown.java:167)
    at java.lang.Shutdown.shutdown(Shutdown.java:234)
    - locked <0x0000000083f7f388> (a java.lang.Class for java.lang.Shutdown)

"HyperGraph Cache Maintenance" daemon prio=8 tid=0x000000000dee4800 nid=0x214 
in Object.wait() [0x000000000ff7f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000840962b0> (a java.util.LinkedList)
    at org.hypergraphdb.util.ActionQueueThread.run(ActionQueueThread.java:126)
    - locked <0x00000000840962b0> (a java.util.LinkedList)

"HGCHECKPOINT" daemon prio=6 tid=0x000000000d38d000 nid=0x1700 waiting on 
condition [0x000000000f37f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at org.hypergraphdb.storage.bje.BJEStorageImplementation$CheckPointThread.run(BJEStorageImplementation.java:609)

"Checkpointer" daemon prio=6 tid=0x000000000d38c800 nid=0xb6c in Object.wait() 
[0x000000000fc6f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000084cb1940> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x0000000084cb1940> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"Cleaner-5" daemon prio=6 tid=0x000000000daf3800 nid=0x900 in Object.wait() 
[0x000000000fa2f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000084cc4fa8> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x0000000084cc4fa8> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"Cleaner-4" daemon prio=6 tid=0x000000000daf3000 nid=0x998 in Object.wait() 
[0x000000000f91e000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000084cc5180> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x0000000084cc5180> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"Cleaner-3" daemon prio=6 tid=0x000000000de81800 nid=0x984 in Object.wait() 
[0x000000000f76f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000084cc5358> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x0000000084cc5358> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"Cleaner-2" daemon prio=6 tid=0x000000000de81000 nid=0x1380 in Object.wait() 
[0x000000000f5ae000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000084cc5530> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x0000000084cc5530> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"Cleaner-1" daemon prio=6 tid=0x000000000dbcf800 nid=0x14e0 in Object.wait() 
[0x000000000f4af000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000084cc5708> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:174)
    - locked <0x0000000084cc5708> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"INCompressor" daemon prio=6 tid=0x000000000dbce800 nid=0xb50 in Object.wait() 
[0x000000000f23f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x000000008402fe98> (a java.lang.Object)
    at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:176)
    - locked <0x000000008402fe98> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

"Monitor Ctrl-Break" daemon prio=6 tid=0x000000000d0b2800 nid=0x12f0 runnable 
[0x000000000d52e000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:150)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    - locked <0x00000000de29aef0> (a java.io.InputStreamReader)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.fill(BufferedReader.java:154)
    at java.io.BufferedReader.readLine(BufferedReader.java:317)
    - locked <0x00000000de29aef0> (a java.io.InputStreamReader)
    at java.io.BufferedReader.readLine(BufferedReader.java:382)
    at com.intellij.rt.execution.application.AppMain$1.run(AppMain.java:85)
    at java.lang.Thread.run(Thread.java:722)

"Service Thread" daemon prio=6 tid=0x000000000b486000 nid=0x1618 runnable 
[0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x000000000b482000 nid=0x1730 waiting 
on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x000000000b479000 nid=0x1480 waiting 
on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x000000000b478000 nid=0x4dc runnable 
[0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x000000000b471000 nid=0xdb0 waiting on 
condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x0000000001ec8000 nid=0x1568 in Object.wait() 
[0x000000000c69f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000849a1040> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000000849a1040> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

"Reference Handler" daemon prio=10 tid=0x0000000001ec1800 nid=0xd70 in 
Object.wait() [0x000000000c30f000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000849a0b28> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:503)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
    - locked <0x00000000849a0b28> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x000000000b3f2800 nid=0x78 runnable 

"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000001e16000 nid=0x1324 
runnable 

"GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000001e18000 nid=0xf28 
runnable 

"GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000001e19800 nid=0xcdc 
runnable 

"GC task thread#3 (ParallelGC)" prio=6 tid=0x0000000001e1b000 nid=0x8ac 
runnable 

"VM Periodic Task Thread" prio=10 tid=0x000000000b4a0800 nid=0x1420 waiting on 
condition 

JNI global references: 185

Found one Java-level deadlock:
=============================
"Thread-2":
  waiting to lock monitor 0x000000000d362410 (object 0x00000000841d7d88, a java.lang.Object),
  which is held by "Thread-4"
"Thread-4":
  waiting to lock monitor 0x000000000d3626b0 (object 0x00000000841d2748, a java.lang.Class),
  which is held by "Thread-2"

Java stack information for the threads listed above:
===================================================
"Thread-2":
    at org.hypergraphdb.HyperGraph.close(HyperGraph.java:407)
    - waiting to lock <0x00000000841d7d88> (a java.lang.Object)
    at org.hypergraphdb.HGEnvironment.closeAll(HGEnvironment.java:233)
    - locked <0x00000000841d2748> (a java.lang.Class for org.hypergraphdb.HGEnvironment)
    at org.hypergraphdb.HGEnvironment$OnShutdown.run(HGEnvironment.java:264)
    at java.lang.Thread.run(Thread.java:722)
"Thread-4":
    at org.hypergraphdb.HGEnvironment.getMemoryWarningSystem(HGEnvironment.java:68)
    - waiting to lock <0x00000000841d2748> (a java.lang.Class for org.hypergraphdb.HGEnvironment)
    at org.hypergraphdb.cache.MRUCache.close(MRUCache.java:446)
    at org.hypergraphdb.cache.WeakRefAtomCache.close(WeakRefAtomCache.java:395)
    at org.hypergraphdb.HyperGraph.close(HyperGraph.java:412)
    - locked <0x00000000841d7d88> (a java.lang.Object)
    at info.gehrels.diplomarbeit.hypergraphdb.HyperGraphDBHelper$1.run(HyperGraphDBHelper.java:24)

Found 1 deadlock.

Heap
 PSYoungGen      total 343168K, used 177902K [0x00000000d66b0000, 0x00000000f48c0000, 0x0000000000000000)
  eden space 295104K, 44% used [0x00000000d66b0000,0x00000000de58b500,0x00000000e86e0000)
  from space 48064K, 99% used [0x00000000f19d0000,0x00000000f48b03a8,0x00000000f48c0000)
  to   space 60160K, 0% used [0x00000000ed340000,0x00000000ed340000,0x00000000f0e00000)
 ParOldGen       total 162624K, used 95454K [0x0000000083400000, 0x000000008d2d0000, 0x00000000d66b0000)
  object space 162624K, 58% used [0x0000000083400000,0x0000000089137a78,0x000000008d2d0000)
 PSPermGen       total 21248K, used 13565K [0x000000007e200000, 0x000000007f6c0000, 0x0000000083400000)
  object space 21248K, 63% used [0x000000007e200000,0x000000007ef3f5c8,0x000000007f6c0000)

Original comment by google-a...@gehrels.info on 12 Dec 2012 at 1:18

GoogleCodeExporter commented 9 years ago
This happens ~80% of the time i run the code. Since the docs say (somewhere), 
that it is very important to ensure, that the database gets properly closed, it 
would maybe be a good idea to clarify this in the docs.

Original comment by google-a...@gehrels.info on 12 Dec 2012 at 1:24

GoogleCodeExporter commented 9 years ago
Thanks, will take a look and try to fix :)

Original comment by borislav...@gmail.com on 13 Dec 2012 at 7:30