Opened 15 years ago
Closed 15 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 by , 15 years ago
Cc: | added |
---|
comment:3 by , 15 years ago
Owner: | changed from | to
---|---|
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 by , 15 years ago
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 by , 15 years ago
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 by , 15 years ago
It seems the attached file created by josm is unreadable by josm. Please try your luck with the description in the OP once more...
by , 15 years ago
Attachment: | freeze.2.osm added |
---|
by , 15 years ago
Attachment: | freeze.osm added |
---|
comment:7 by , 15 years ago
Hm. The locally stored file is fine, but when I d/l the attachements josm can't make sense of it.
comment:8 by , 15 years ago
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 by , 15 years ago
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 by , 15 years ago
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