Modify ↓
Opened 16 years ago
Closed 16 years ago
#4382 closed defect (fixed)
JOSM hangs at "Fetching a package of relations" when doing "Update selection" for ~150k nodes
| Reported by: | Owned by: | team | |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | Core | Version: | latest |
| Keywords: | quadbuckets | Cc: |
Description
- Select ~150k nodes
- Do "Update selection"
- JOSM seemingly updates all the nodes
- JOSM hangs with "Fetching a package of relations". Closing the dialog or pressing "Cancel" does nothing
Heres' kill -QUIT output:
2010-01-17 01:04:33 Full thread dump Java HotSpot(TM) Server VM (14.2-b01 mixed mode): "Map Status Collector" daemon prio=10 tid=0x6dcc9400 nid=0x5ae9 in Object.wait() [0x6e647000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x7b480710> (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 <0x7b480710> (a org.openstreetmap.josm.gui.MapStatus$Collector) at java.lang.Thread.run(Thread.java:619) "pool-1-thread-1" prio=10 tid=0x09f0e400 nid=0x59a9 in Object.wait() [0x6e73a000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x80604250> (a java.awt.EventQueue$1AWTInvocationLock) at java.lang.Object.wait(Object.java:485) at java.awt.EventQueue.invokeAndWait(EventQueue.java:992) - locked <0x80604250> (a java.awt.EventQueue$1AWTInvocationLock) at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:86) at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:123) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) "Timer-0" daemon prio=10 tid=0x09df3c00 nid=0x599f in Object.wait() [0x6e35c000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x747105e0> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x747105e0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "OSMJobThread 1" daemon prio=10 tid=0x6ea56c00 nid=0x599e waiting on condition [0x6e86f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x746ce0d0> (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=0x09929000 nid=0x5979 waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "TimerQueue" daemon prio=10 tid=0x09b82000 nid=0x598d in Object.wait() [0x6e6e9000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x73b5d7a8> (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(TimerQueue.java:236) - locked <0x73b5d7a8> (a javax.swing.TimerQueue) at java.lang.Thread.run(Thread.java:619) "AWT-EventQueue-0" prio=10 tid=0x6ea73c00 nid=0x5988 runnable [0x6e8c0000] java.lang.Thread.State: RUNNABLE at java.util.ArrayList.indexOf(ArrayList.java:216) at java.util.ArrayList.contains(ArrayList.java:199) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:397) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact_child(QuadBuckets.java:410) at org.openstreetmap.josm.data.osm.QuadBuckets$QBLevel.find_exact(QuadBuckets.java:399) at org.openstreetmap.josm.data.osm.QuadBuckets.remove(QuadBuckets.java:789) at org.openstreetmap.josm.data.osm.DataSet.reindexNode(DataSet.java:789) at org.openstreetmap.josm.data.osm.DataSet.fireNodeMoved(DataSet.java:872) at org.openstreetmap.josm.data.osm.Node.setCoor(Node.java:26) at org.openstreetmap.josm.data.osm.Node.mergeFrom(Node.java:136) at org.openstreetmap.josm.data.osm.DataSetMerger.mergeById(DataSetMerger.java:325) at org.openstreetmap.josm.data.osm.DataSetMerger.mergePrimitive(DataSetMerger.java:82) at org.openstreetmap.josm.data.osm.DataSetMerger.merge(DataSetMerger.java:367) at org.openstreetmap.josm.gui.layer.OsmDataLayer.mergeFrom(OsmDataLayer.java:283) at org.openstreetmap.josm.gui.io.UpdatePrimitivesTask$1.run(UpdatePrimitivesTask.java:87) at org.openstreetmap.josm.gui.io.UpdatePrimitivesTask.finish(UpdatePrimitivesTask.java:93) at org.openstreetmap.josm.gui.PleaseWaitRunnable$1.run(PleaseWaitRunnable.java:88) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1045) at java.awt.Dialog$3.run(Dialog.java:1097) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1095) at java.awt.Component.show(Component.java:1563) at java.awt.Component.setVisible(Component.java:1515) at java.awt.Window.setVisible(Window.java:841) at java.awt.Dialog.setVisible(Dialog.java:985) at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$3.run(PleaseWaitProgressMonitor.java:83) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) 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=0x6ea73400 nid=0x5987 in Object.wait() [0x6e992000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x73a74ac8> (a java.lang.Object) at java.lang.Object.wait(Object.java:485) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) - locked <0x73a74ac8> (a java.lang.Object) at java.lang.Thread.run(Thread.java:619) "AWT-XAWT" daemon prio=10 tid=0x6ea45400 nid=0x5985 runnable [0x6e9e3000] 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=0x6ea04400 nid=0x5984 in Object.wait() [0x6eb6c000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x73a49c30> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x73a49c30> (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=0x099c4400 nid=0x5982 runnable [0x00000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=10 tid=0x099c2800 nid=0x5981 waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x099bf800 nid=0x5980 waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x099be000 nid=0x597f waiting on condition [0x00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x099adc00 nid=0x597e in Object.wait() [0x6f178000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x73a36f68> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x73a36f68> (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=0x099a9400 nid=0x597d in Object.wait() [0x6f1c9000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x73a50e38> (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 <0x73a50e38> (a java.lang.ref.Reference$Lock) "VM Thread" prio=10 tid=0x099a5400 nid=0x597c runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x0992fc00 nid=0x597a runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x09931000 nid=0x597b runnable "VM Periodic Task Thread" prio=10 tid=0x099c6400 nid=0x5983 waiting on condition JNI global references: 5587 Heap PSYoungGen total 46848K, used 35984K [0xac760000, 0xb2770000, 0xb3920000) eden space 41600K, 73% used [0xac760000,0xae564230,0xaf000000) from space 5248K, 100% used [0xaf000000,0xaf520000,0xaf520000) to space 28160K, 0% used [0xb0bf0000,0xb0bf0000,0xb2770000) PSOldGen total 260544K, used 218593K [0x73920000, 0x83790000, 0xac760000) object space 260544K, 83% used [0x73920000,0x80e98718,0x83790000) PSPermGen total 25088K, used 21124K [0x6f920000, 0x711a0000, 0x73920000) object space 25088K, 84% used [0x6f920000,0x70dc1018,0x711a0000)
Attachments (0)
Note:
See TracTickets
for help on using tickets.



Josm doesn't hang, it only takes too long to reindex nodes because QuadBuckets.remove method was too slow. That's fixed in r3154