Opened 12 years ago
Closed 12 years ago
#4323 closed defect (fixed)
splitting way freezes JOSM completely
Reported by: | malenki | Owned by: | malenki |
---|---|---|---|
Priority: | blocker | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | Cc: | malenki |
Description
Doesn't freeze at most ways, here a How To reproduce: Downloading area http://www.openstreetmap.org/?lat=50.85112&lon=13.34062&zoom=16&layers=B000FTF and split "Brand-Erbisdorfer Grenzweg" where "Königstannenweg" branches.
Results here in 100% CPU-load. I have to kill -s 9 josm. Confirmed by one user who had to try it twice to reproduce.
Happens with josm 2784 and 2773 - 2741 is fine
Attachments (2)
Change History (14)
comment:1 Changed 12 years ago by
Cc: | malenki added |
---|
comment:3 Changed 12 years ago by
Owner: | changed from team to malenki |
---|---|
Status: | new → needinfo |
Sorry, could not reproduce. Please supply an osm-file (as small as possible) and a detailed step-by-step description (try it youself before with a fresh josm start). Sometimes the reason is a very small detail.
comment:4 Changed 12 years ago by
I also can't reproduce it.
You can use kill -s QUIT instead of kill -s 9 next time. This won't kill JOSM but it will print thread dump which can help us to identify the problem.
comment:5 Changed 12 years ago by
jttt, thx, didn't now that - but the command doesn't work with josm hanging with this bug.
Reverting [1] would brought back the bug at the mentioned place but I will append a osm-file though. I thought just leaving the way intact would be enough.
comment:6 Changed 12 years ago by
It seems the attached file created by josm is unreadable by josm. Please try your luck with the description in the OP once more...
Changed 12 years ago by
Attachment: | freeze.2.osm added |
---|
Changed 12 years ago by
Attachment: | freeze.osm added |
---|
comment:7 Changed 12 years ago by
Hm. The locally stored file is fine, but when I d/l the attachements josm can't make sense of it.
comment:8 Changed 12 years ago by
I could actually reproduce this immediately with a "fresh" josm.
area loaded was http://api.openstreetmap.org/api/0.6/map?bbox=13.335235118865967,50.8522197088937,13.335707187652588,50.85253128233479
josm consumed 100% CPU and kill -QUIT resulted in this dump:
Full thread dump Java HotSpot(TM) Client VM (14.3-b01 mixed mode, sharing):according to "OpenStreetBugs download loop" prio=10 tid=0x08ca5000 nid=0x4fd1 waiting on condition [0xb1004000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.openstreetmap.josm.plugins.osb.OsbDownloadLoop.run(OsbDownloadLoop.java:94) "Map Status Collector" daemon prio=10 tid=0x0821b000 nid=0x4fd0 in Object.wait() [0xb1055000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:148) - locked <0x55954b88> (a org.openstreetmap.josm.gui.MapStatus$Collector) at java.lang.Thread.run(Thread.java:619) "pool-1-thread-1" prio=10 tid=0x082c4400 nid=0x4fca waiting on condition [0xb1984000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x54830710> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) "Timer-0" daemon prio=10 tid=0x080fa000 nid=0x4f9c in Object.wait() [0xb1a86000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x55491ce8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "OSMJobThread 1" daemon prio=10 tid=0x088e5000 nid=0x4f9a waiting on condition [0xb1ad7000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x554739a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358) at org.openstreetmap.gui.jmapviewer.JobDispatcher$JobThread.executeJobs(JobDispatcher.java:111) at org.openstreetmap.gui.jmapviewer.JobDispatcher$JobThread.run(JobDispatcher.java:98) "DestroyJavaVM" prio=10 tid=0x08059c00 nid=0x4f42 waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "RemoteControl HTTP Server" daemon prio=10 tid=0x084c6800 nid=0x4f6e runnable [0xb1b79000] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390) - locked <0x55376288> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.openstreetmap.josm.plugins.remotecontrol.HttpServer.run(HttpServer.java:51) "AWT-EventQueue-0" prio=10 tid=0x08112c00 nid=0x4f6d runnable [0xb19d5000] java.lang.Thread.State: RUNNABLE at org.openstreetmap.josm.actions.SplitWayAction.splitWay(SplitWayAction.java:415) at org.openstreetmap.josm.actions.SplitWayAction.splitWay(SplitWayAction.java:288) at org.openstreetmap.josm.actions.SplitWayAction.actionPerformed(SplitWayAction.java:197) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1633) at javax.swing.JComponent.processKeyBinding(JComponent.java:2839) at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267) at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:216) at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2916) at javax.swing.JComponent.processKeyBindings(JComponent.java:2908) at javax.swing.JComponent.processKeyEvent(JComponent.java:2802) at java.awt.Component.processEvent(Component.java:6040) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676) at java.awt.Component.dispatchEventImpl(Component.java:4502) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) "AWT-Shutdown" prio=10 tid=0x082ae400 nid=0x4f6c in Object.wait() [0xb1b28000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) - locked <0x54845300> (a java.lang.Object) at java.lang.Thread.run(Thread.java:619) "TimerQueue" daemon prio=10 tid=0x08462400 nid=0x4f56 in Object.wait() [0xb1a2c000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at javax.swing.TimerQueue.run(TimerQueue.java:232) - locked <0x54ba9e28> (a javax.swing.TimerQueue) at java.lang.Thread.run(Thread.java:619) "AWT-XAWT" daemon prio=10 tid=0x0822bc00 nid=0x4f4c runnable [0xb1bca000] java.lang.Thread.State: RUNNABLE at sun.awt.X11.XToolkit.waitForEvents(Native Method) at sun.awt.X11.XToolkit.run(XToolkit.java:548) at sun.awt.X11.XToolkit.run(XToolkit.java:523) at java.lang.Thread.run(Thread.java:619) "Java2D Queue Flusher" daemon prio=10 tid=0x08225400 nid=0x4f4b in Object.wait() [0xb1cbb000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:176) - locked <0x548bce98> (a sun.java2d.opengl.OGLRenderQueue$QueueFlusher) "Java2D Disposer" daemon prio=10 tid=0x081a6000 nid=0x4f4a in Object.wait() [0xb1d25000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x5483c748> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at sun.java2d.Disposer.run(Disposer.java:125) at java.lang.Thread.run(Thread.java:619) "Low Memory Detector" daemon prio=10 tid=0x080ca400 nid=0x4f48 runnable [0x00000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x080c7000 nid=0x4f47 waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x080c5800 nid=0x4f46 waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x08081400 nid=0x4f45 in Object.wait() [0xb4dae000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x546ab1c0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x0807fc00 nid=0x4f44 in Object.wait() [0xb4dff000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x546ab248> (a java.lang.ref.Reference$Lock) "VM Thread" prio=10 tid=0x0807e000 nid=0x4f43 runnable "VM Periodic Task Thread" prio=10 tid=0x080de000 nid=0x4f49 waiting on condition JNI global references: 5128 Heap def new generation total 1728K, used 1395K [0x4f760000, 0x4f930000, 0x54620000) eden space 1600K, 84% used [0x4f760000, 0x4f8b0058, 0x4f8f0000) from space 128K, 40% used [0x4f8f0000, 0x4f8fcd20, 0x4f910000) to space 128K, 0% used [0x4f910000, 0x4f910000, 0x4f930000) tenured generation total 21676K, used 21438K [0x54620000, 0x55b4b000, 0x8f760000) the space 21676K, 98% used [0x54620000, 0x55b0fa00, 0x55b0fa00, 0x55b4b000) compacting perm gen total 12288K, used 7164K [0x8f760000, 0x90360000, 0x93760000) the space 12288K, 58% used [0x8f760000, 0x8fe5f1e8, 0x8fe5f200, 0x90360000) ro space 8192K, 74% used [0x93760000, 0x93d593f0, 0x93d59400, 0x93f60000) rw space 12288K, 59% used [0x93f60000, 0x946776e0, 0x94677800, 0x94b60000)
comment:9 Changed 12 years ago by
at least now I have a trace:
(though QUIT doesn't work everytime)
$ kill -s QUIT 29908
$ 2010-01-09 17:31:38
Full thread dump Java HotSpot(TM) Server VM (14.3-b01 mixed mode):
"OpenStreetBugs Lade-Warteschleife" prio=10 tid=0x09ddbc00 nid=0x74ee waiting on condition [0x2dafe000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.openstreetmap.josm.plugins.osb.OsbDownloadLoop.run(OsbDownloadLoop.java:94)
"Map Status Collector" daemon prio=10 tid=0x0a11cc00 nid=0x74ed in Object.wait() [0x2dc68000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xa60962f8> (a org.openstreetmap.josm.gui.MapStatus$Collector) at java.lang.Object.wait(Object.java:485) at org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:148)
- locked <0xa60962f8> (a org.openstreetmap.josm.gui.MapStatus$Collector) at java.lang.Thread.run(Thread.java:619)
"DestroyJavaVM" prio=10 tid=0x2ee1f800 nid=0x74d5 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"RemoteControl HTTP Server" daemon prio=10 tid=0x2d35e800 nid=0x74ec runnable [0x2df5c000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
- locked <0x34a50068> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.openstreetmap.josm.plugins.remotecontrol.HttpServer.run(HttpServer.java:51)
"TimerQueue" daemon prio=10 tid=0x0982a000 nid=0x74e6 in Object.wait() [0x2d6fe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x3419bfe0> (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(TimerQueue.java:232)
- locked <0x3419bfe0> (a javax.swing.TimerQueue) at java.lang.Thread.run(Thread.java:619)
"AWT-EventQueue-0" prio=10 tid=0x2e06a400 nid=0x74e3 runnable [0x2dffe000]
java.lang.Thread.State: RUNNABLE
at org.openstreetmap.josm.actions.SplitWayAction.splitWay(SplitWayAction.java:415)
at org.openstreetmap.josm.actions.SplitWayAction.splitWay(SplitWayAction.java:288)
at org.openstreetmap.josm.actions.SplitWayAction.actionPerformed(SplitWayAction.java:197)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1633)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2839)
at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267)
at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:216)
at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2916)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2908)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2802)
at java.awt.Component.processEvent(Component.java:6040)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4502)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
"AWT-Shutdown" prio=10 tid=0x2de0f400 nid=0x74e2 in Object.wait() [0x2e19b000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x33d57150> (a java.lang.Object) at java.lang.Object.wait(Object.java:485) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x33d57150> (a java.lang.Object) at java.lang.Thread.run(Thread.java:619)
"AWT-XAWT" daemon prio=10 tid=0x0983c000 nid=0x74e1 runnable [0x2e1ec000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:548)
at sun.awt.X11.XToolkit.run(XToolkit.java:523)
at java.lang.Thread.run(Thread.java:619)
"Java2D Disposer" daemon prio=10 tid=0x097b4000 nid=0x74e0 in Object.wait() [0x2e370000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x33d605c0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x33d605c0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at sun.java2d.Disposer.run(Disposer.java:125) at java.lang.Thread.run(Thread.java:619)
"Low Memory Detector" daemon prio=10 tid=0x2eec0800 nid=0x74de runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=10 tid=0x2eebdc00 nid=0x74dd waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x2eebc400 nid=0x74dc waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x2eebac00 nid=0x74db waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x2eeab400 nid=0x74da in Object.wait() [0x2eb96000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x339762a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x339762a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x2eeaa000 nid=0x74d9 in Object.wait() [0x2ebe7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x33976328> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x33976328> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x2eea6000 nid=0x74d8 runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x09758400 nid=0x74d6 runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x09759800 nid=0x74d7 runnable
"VM Periodic Task Thread" prio=10 tid=0x2eec2800 nid=0x74df waiting on condition
JNI global references: 3243
Heap
PSYoungGen total 35520K, used 28485K [0xa54c0000, 0xa85b0000, 0xb3840000)
eden space 30080K, 94% used [0xa54c0000,0xa7091548,0xa7220000)
from space 5440K, 0% used [0xa7220000,0xa7220000,0xa7770000)
to space 6080K, 0% used [0xa7fc0000,0xa7fc0000,0xa85b0000)
PSOldGen total 39680K, used 23299K [0x33840000, 0x35f00000, 0xa54c0000)
object space 39680K, 58% used [0x33840000,0x34f00d40,0x35f00000)
PSPermGen total 23808K, used 16695K [0x2f840000, 0x30f80000, 0x33840000)
object space 23808K, 70% used [0x2f840000,0x3088dd90,0x30f80000)
comment:11 Changed 12 years ago by
I think we're getting there. Code around SplitWayAction:410 looks like good candite for infinitive loop and it was added in r2764
PS: Happens also with #2785