logo separator

[mkgmap-dev] Slowness processing specific tile

From Felix Hartmann extremecarver at gmail.com on Mon May 23 20:44:44 BST 2011

On 23.05.2011 17:58, WanMil wrote:
>> I don't know how to get a stack trace. Is there a howto for this 
>> somewhere?
>
> Your JDK installation contains a program named jvisualvm. jvisualvm 
> gives you a list of running programs. Double click the blocking mkgmap 
> instance. Then you see different tabs, one of it is "Threads" 
> containing a button "Thread Dump". Hit this button and you get a full 
> stack trace including some warnings if a deadlock exists.
>
> WanMil
Okay, here is the dump - I don't know what to do with it.:
(just some notes before, the used heap is fluctuating between 500MB and 
1.6GB of around 2.8GB heap size that got reduced to around 2.2GB and 
8.5GB max-heap set (it definitely not runs out of memory). I have 
max-jobs=4, but only one CPU core is maxed out.



2011-05-23 21:38:06
Full thread dump Java HotSpot(TM) 64-Bit Server VM (17.0-b16 mixed mode):

"RMI TCP Connection(2)-88.198.53.163" daemon prio=6 
tid=0x0000000008a01000 nid=0xd24 runnable [0x000000000d98f000]
    java.lang.Thread.State: RUNNABLE
     at java.net.SocketInputStream.socketRead0(Native Method)
     at java.net.SocketInputStream.read(Unknown Source)
     at java.io.BufferedInputStream.fill(Unknown Source)
     at java.io.BufferedInputStream.read(Unknown Source)
     - locked <0x00000001e0ec8bd8> (a java.io.BufferedInputStream)
     at java.io.FilterInputStream.read(Unknown Source)
     at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
     at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown 
Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)

    Locked ownable synchronizers:
     - <0x00000001db78c950> (a 
java.util.concurrent.locks.ReentrantLock$NonfairSync)

"JMX server connection timeout 14" daemon prio=6 tid=0x00000000093e3000 
nid=0xd7c in Object.wait() [0x000000000d88f000]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
     at java.lang.Object.wait(Native Method)
     - waiting on <0x00000001db7803d0> (a [I)
     at 
com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(Unknown 
Source)
     - locked <0x00000001db7803d0> (a [I)
     at java.lang.Thread.run(Unknown Source)

    Locked ownable synchronizers:
     - None

"RMI Scheduler(0)" daemon prio=6 tid=0x000000000ada4800 nid=0x19dc 
waiting on condition [0x000000000d78f000]
    java.lang.Thread.State: TIMED_WAITING (parking)
     at sun.misc.Unsafe.park(Native Method)
     - parking to wait for <0x00000001db6d09f8> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
     at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
     at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown 
Source)
     at java.util.concurrent.DelayQueue.take(Unknown Source)
     at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown 
Source)
     at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown 
Source)
     at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)

    Locked ownable synchronizers:
     - None

"RMI TCP Connection(1)-88.198.53.163" daemon prio=6 
tid=0x00000000089b5000 nid=0xcdc runnable [0x000000000d68f000]
    java.lang.Thread.State: RUNNABLE
     at java.net.SocketInputStream.socketRead0(Native Method)
     at java.net.SocketInputStream.read(Unknown Source)
     at java.io.BufferedInputStream.fill(Unknown Source)
     at java.io.BufferedInputStream.read(Unknown Source)
     - locked <0x00000001e0eee9e0> (a java.io.BufferedInputStream)
     at java.io.FilterInputStream.read(Unknown Source)
     at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
     at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown 
Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)

    Locked ownable synchronizers:
     - <0x00000001db78cc10> (a 
java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI TCP Accept-0" daemon prio=6 tid=0x00000000099b4800 nid=0x1c8c 
runnable [0x000000000d58f000]
    java.lang.Thread.State: RUNNABLE
     at java.net.PlainSocketImpl.socketAccept(Native Method)
     at java.net.PlainSocketImpl.accept(Unknown Source)
     - locked <0x00000001db7805c8> (a java.net.SocksSocketImpl)
     at java.net.ServerSocket.implAccept(Unknown Source)
     at java.net.ServerSocket.accept(Unknown Source)
     at 
sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(Unknown 
Source)
     at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(Unknown 
Source)
     at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)

    Locked ownable synchronizers:
     - None

"pool-1-thread-1" prio=6 tid=0x0000000007961800 nid=0x1de8 runnable 
[0x000000000846f000]
    java.lang.Thread.State: RUNNABLE
     at java.util.LinkedList.entry(Unknown Source)
     at java.util.LinkedList.get(Unknown Source)
     at 
uk.me.parabola.imgfmt.app.net.NETFile.simplifySortedRoads(NETFile.java:140)
     at uk.me.parabola.imgfmt.app.net.NETFile.writePost(NETFile.java:84)
     at uk.me.parabola.mkgmap.build.MapBuilder.makeMap(MapBuilder.java:228)
     at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:101)
     at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:65)
     at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:222)
     at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:219)
     at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
     at java.util.concurrent.FutureTask.run(Unknown Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)

    Locked ownable synchronizers:
     - <0x0000000086234090> (a 
java.util.concurrent.locks.ReentrantLock$NonfairSync)

"Low Memory Detector" daemon prio=6 tid=0x00000000077cd800 nid=0x1f34 
runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    Locked ownable synchronizers:
     - None

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

    Locked ownable synchronizers:
     - None

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

    Locked ownable synchronizers:
     - None

"Attach Listener" daemon prio=10 tid=0x00000000077c1000 nid=0x196c 
waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    Locked ownable synchronizers:
     - None

"Signal Dispatcher" daemon prio=10 tid=0x00000000077bc000 nid=0x1264 
runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    Locked ownable synchronizers:
     - None

"Finalizer" daemon prio=8 tid=0x0000000000522800 nid=0x1dc8 in 
Object.wait() [0x000000000776f000]
    java.lang.Thread.State: WAITING (on object monitor)
     at java.lang.Object.wait(Native Method)
     - waiting on <0x0000000086224688> (a java.lang.ref.ReferenceQueue$Lock)
     at java.lang.ref.ReferenceQueue.remove(Unknown Source)
     - locked <0x0000000086224688> (a java.lang.ref.ReferenceQueue$Lock)
     at java.lang.ref.ReferenceQueue.remove(Unknown Source)
     at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

    Locked ownable synchronizers:
     - None

"Reference Handler" daemon prio=10 tid=0x0000000000521000 nid=0x900 in 
Object.wait() [0x000000000766f000]
    java.lang.Thread.State: WAITING (on object monitor)
     at java.lang.Object.wait(Native Method)
     - waiting on <0x0000000086224640> (a java.lang.ref.Reference$Lock)
     at java.lang.Object.wait(Object.java:485)
     at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
     - locked <0x0000000086224640> (a java.lang.ref.Reference$Lock)

    Locked ownable synchronizers:
     - None

"main" prio=6 tid=0x00000000002bb800 nid=0x768 waiting on condition 
[0x00000000024ff000]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
     at java.lang.Thread.sleep(Native Method)
     at uk.me.parabola.mkgmap.main.Main.endOptions(Main.java:383)
     at 
uk.me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java:126)
     at uk.me.parabola.mkgmap.main.Main.main(Main.java:132)

    Locked ownable synchronizers:
     - None

"VM Thread" prio=10 tid=0x000000000051d000 nid=0xccc runnable

"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000000476800 nid=0x1e68 
runnable

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

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

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

"VM Periodic Task Thread" prio=10 tid=0x00000000077d9000 nid=0xdc4 
waiting on condition

JNI global references: 1134





More information about the mkgmap-dev mailing list