Modify

Opened 8 months ago

Closed 8 months ago

Last modified 8 months ago

#23930 closed defect (fixed)

Merging duplicated layers with little differences stalls JOSM

Reported by: skyper Owned by: team
Priority: normal Milestone: 24.09
Component: Core Version: latest
Keywords: template_report conflict merge Cc:

Description (last modified by skyper)

I am playing with conflicts therefore:

What steps will reproduce the problem?

  1. Download some data
  2. Duplicate the layer
  3. In the first layer (new_way.osm), add a tag to an existing node plus add a new way (two nodes) starting with the existing node
  4. In the duplicated layer (node_deleted.osm), delete the existing node
  5. Activate new_way.osm and merge it with node_deleted.osm, see JOSM_conflict_bug.joz

What is the expected result?

Merging within seconds and a conflict should be created

What happens instead?

Merging takes for ever

Please provide any additional information below. Attach a screenshot if possible.

I waited quite some time (~20min) but merging stalled and the progress bar did not show any progress. So I killed the app, see thread dump below.
Note: Curiously, if I change the order and activate node_deleted.osm and then merge the layers, I get the expected result within seconds.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2024-09-18 22:24:36 +0200 (Wed, 18 Sep 2024)
Revision:19225
Build-Date:2024-09-19 01:30:30
URL:https://josm.openstreetmap.de/svn/trunk

Last errors/warnings:
- 10685.013 E: Thread main-worker-0 raised java.lang.IllegalStateException: Already registered a conflict for primitive '{Node id=2427358529 version=2 MVD lat=47.9935613,lon=7.8392681}'.

Full thread dump

2024-09-19 18:12:23.956 SEVERE: Thread main-worker-0 raised java.lang.IllegalStateException: Already registered a conflict for primitive '{Node id=2427358529 version=2 MVD lat=47.9935613,lon=7.8392681}'.
2024-09-19 18:15:08.170 INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> HTTP/1.1 200 (385 ms)
2024-09-19 18:20:08.232 INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> HTTP/1.1 200 (451 ms)
2024-09-19 18:25:08.167 INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> HTTP/1.1 200 (408 ms)
2024-09-19 18:30:08.281 INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> HTTP/1.1 200 (492 ms)
2024-09-19 18:31:52
Full thread dump OpenJDK 64-Bit Server VM (17.0.12+7-Debian-2deb12u1 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x00007f04fc04fd40, length=35, elements={
0x00007f05c024eda0, 0x00007f05c0250190, 0x00007f05c0256900, 0x00007f05c0257cc0,
0x00007f05c02590e0, 0x00007f05c025aaa0, 0x00007f05c025bfe0, 0x00007f05c0265450,
0x00007f05c02a3220, 0x00007f05c030a8d0, 0x00007f05c05c52c0, 0x00007f05c068e7f0,
0x00007f05c077d0e0, 0x00007f04ec030ca0, 0x00007f04ec033f10, 0x00007f04e4090110,
0x00007f05c08f2440, 0x00007f05c06fa170, 0x00007f05c06fed30, 0x00007f05c0b564d0,
0x00007f04f06cc640, 0x00007f04f0bd0600, 0x00007f05c10cd440, 0x00007f05c12f9340,
0x00007f05c14903d0, 0x00007f05c14dfb80, 0x00007f05c1579b90, 0x00007f05c1500c00,
0x00007f05c14e52a0, 0x00007f05c170ba00, 0x00007f05c0015dd0, 0x00007f04e41c4060,
0x00007f04e42086d0, 0x00007f04e44c6550, 0x00007f0531de3990
}

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=11,48ms elapsed=3130,32s tid=0x00007f05c024eda0 nid=0x2e1b waiting on condition  [0x00007f059db5e000]
   java.lang.Thread.State: RUNNABLE
	at java.lang.ref.Reference.waitForReferencePendingList(java.base@17.0.12/Native Method)
	at java.lang.ref.Reference.processPendingReferences(java.base@17.0.12/Reference.java:253)
	at java.lang.ref.Reference$ReferenceHandler.run(java.base@17.0.12/Reference.java:215)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=2,51ms elapsed=3130,32s tid=0x00007f05c0250190 nid=0x2e1c in Object.wait()  [0x00007f059da5d000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:155)
	- locked <0x000000068ec1b4c0> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:176)
	at java.lang.ref.Finalizer$FinalizerThread.run(java.base@17.0.12/Finalizer.java:172)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0,28ms elapsed=3130,32s tid=0x00007f05c0256900 nid=0x2e1d waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #5 daemon prio=9 os_prio=0 cpu=5,37ms elapsed=3130,32s tid=0x00007f05c0257cc0 nid=0x2e1e runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Monitor Deflation Thread" #6 daemon prio=9 os_prio=0 cpu=914,65ms elapsed=3130,32s tid=0x00007f05c02590e0 nid=0x2e1f runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #7 daemon prio=9 os_prio=0 cpu=69172,51ms elapsed=3130,32s tid=0x00007f05c025aaa0 nid=0x2e20 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #9 daemon prio=9 os_prio=0 cpu=15059,25ms elapsed=3130,32s tid=0x00007f05c025bfe0 nid=0x2e21 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #10 daemon prio=9 os_prio=0 cpu=966,88ms elapsed=3130,32s tid=0x00007f05c0265450 nid=0x2e22 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #11 daemon prio=8 os_prio=0 cpu=10,97ms elapsed=3130,28s tid=0x00007f05c02a3220 nid=0x2e23 in Object.wait()  [0x00007f059cff8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:155)
	- locked <0x000000068ec1b6e8> (a java.lang.ref.ReferenceQueue$Lock)
	at jdk.internal.ref.CleanerImpl.run(java.base@17.0.12/CleanerImpl.java:140)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)
	at jdk.internal.misc.InnocuousThread.run(java.base@17.0.12/InnocuousThread.java:162)

"Notification Thread" #12 daemon prio=9 os_prio=0 cpu=0,13ms elapsed=3130,15s tid=0x00007f05c030a8d0 nid=0x2e25 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Java2D Disposer" #16 daemon prio=10 os_prio=0 cpu=23,35ms elapsed=3128,39s tid=0x00007f05c05c52c0 nid=0x2e4a in Object.wait()  [0x00007f058dec6000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:155)
	- locked <0x000000068f40dfe8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:176)
	at sun.java2d.Disposer.run(java.desktop@17.0.12/Disposer.java:145)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"AWT-XAWT" #19 daemon prio=6 os_prio=0 cpu=13903,04ms elapsed=3127,76s tid=0x00007f05c068e7f0 nid=0x2e4c runnable  [0x00007f058dd57000]
   java.lang.Thread.State: RUNNABLE
	at sun.awt.X11.XToolkit.waitForEvents(java.desktop@17.0.12/Native Method)
	at sun.awt.X11.XToolkit.run(java.desktop@17.0.12/XToolkit.java:683)
	at sun.awt.X11.XToolkit.run(java.desktop@17.0.12/XToolkit.java:647)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"main-worker-0" #20 prio=5 os_prio=0 cpu=4651,07ms elapsed=3127,43s tid=0x00007f05c077d0e0 nid=0x2e4d waiting on condition  [0x00007f058d336000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000068f40e648> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@17.0.12/LinkedBlockingQueue.java:435)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@17.0.12/ThreadPoolExecutor.java:1062)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1122)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"AWT-Shutdown" #22 prio=5 os_prio=0 cpu=3,56ms elapsed=3127,18s tid=0x00007f04ec030ca0 nid=0x2e4e in Object.wait()  [0x00007f058d505000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@17.0.12/Object.java:338)
	at sun.awt.AWTAutoShutdown.run(java.desktop@17.0.12/AWTAutoShutdown.java:291)
	- locked <0x000000068f40e910> (a java.lang.Object)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"AWT-EventQueue-0" #21 prio=6 os_prio=0 cpu=46628,47ms elapsed=3127,18s tid=0x00007f04ec033f10 nid=0x2e4f waiting on condition  [0x00007f058d234000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000068f945830> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.awt.EventQueue.getNextEvent(java.desktop@17.0.12/EventQueue.java:565)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@17.0.12/EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@17.0.12/EventDispatchThread.java:124)
	at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@17.0.12/EventDispatchThread.java:117)
	at java.awt.WaitDispatchSupport$2.run(java.desktop@17.0.12/WaitDispatchSupport.java:191)
	at java.awt.WaitDispatchSupport$4.run(java.desktop@17.0.12/WaitDispatchSupport.java:236)
	at java.awt.WaitDispatchSupport$4.run(java.desktop@17.0.12/WaitDispatchSupport.java:234)
	at java.security.AccessController.executePrivileged(java.base@17.0.12/AccessController.java:776)
	at java.security.AccessController.doPrivileged(java.base@17.0.12/AccessController.java:318)
	at java.awt.WaitDispatchSupport.enter(java.desktop@17.0.12/WaitDispatchSupport.java:234)
	at java.awt.Dialog.show(java.desktop@17.0.12/Dialog.java:1080)
	at java.awt.Component.show(java.desktop@17.0.12/Component.java:1728)
	at java.awt.Component.setVisible(java.desktop@17.0.12/Component.java:1675)
	at java.awt.Window.setVisible(java.desktop@17.0.12/Window.java:1036)
	at java.awt.Dialog.setVisible(java.desktop@17.0.12/Dialog.java:1016)
	at org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.lambda$doBeginTask$3(PleaseWaitProgressMonitor.java:255)
	at org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor$$Lambda$1092/0x00007f054072da30.run(Unknown Source)
	at org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor.lambda$doInEDT$0(PleaseWaitProgressMonitor.java:113)
	at org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor$$Lambda$1093/0x00007f054072de80.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(java.desktop@17.0.12/InvocationEvent.java:318)
	at java.awt.EventQueue.dispatchEventImpl(java.desktop@17.0.12/EventQueue.java:773)
	at java.awt.EventQueue$4.run(java.desktop@17.0.12/EventQueue.java:720)
	at java.awt.EventQueue$4.run(java.desktop@17.0.12/EventQueue.java:714)
	at java.security.AccessController.executePrivileged(java.base@17.0.12/AccessController.java:776)
	at java.security.AccessController.doPrivileged(java.base@17.0.12/AccessController.java:399)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@17.0.12/ProtectionDomain.java:86)
	at java.awt.EventQueue.dispatchEvent(java.desktop@17.0.12/EventQueue.java:742)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@17.0.12/EventDispatchThread.java:203)
	at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@17.0.12/EventDispatchThread.java:124)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop@17.0.12/EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(java.desktop@17.0.12/EventDispatchThread.java:109)
	at java.awt.EventDispatchThread.pumpEvents(java.desktop@17.0.12/EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.run(java.desktop@17.0.12/EventDispatchThread.java:90)

"TimerQueue" #23 daemon prio=5 os_prio=0 cpu=796,47ms elapsed=3126,43s tid=0x00007f04e4090110 nid=0x2e50 waiting on condition  [0x00007f058d134000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000069087a790> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.DelayQueue.take(java.base@17.0.12/DelayQueue.java:217)
	at javax.swing.TimerQueue.run(java.desktop@17.0.12/TimerQueue.java:172)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"QuantumRenderer-0" #24 daemon prio=5 os_prio=0 cpu=212,78ms elapsed=3125,91s tid=0x00007f05c08f2440 nid=0x2e51 waiting on condition  [0x00007f058d033000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x00000006908862f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@17.0.12/LinkedBlockingQueue.java:435)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@17.0.12/ThreadPoolExecutor.java:1062)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1122)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(javafx.graphics/QuantumRenderer.java:125)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"FileSystemWatchService" #26 daemon prio=5 os_prio=0 cpu=0,28ms elapsed=3125,07s tid=0x00007f05c06fa170 nid=0x2e54 runnable  [0x00007f058c909000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.fs.LinuxWatchService.poll(java.base@17.0.12/Native Method)
	at sun.nio.fs.LinuxWatchService$Poller.run(java.base@17.0.12/LinuxWatchService.java:314)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"File Watcher" #27 prio=5 os_prio=0 cpu=0,47ms elapsed=3125,05s tid=0x00007f05c06fed30 nid=0x2e55 waiting on condition  [0x00007f058c113000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000069087acd8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@17.0.12/LinkedBlockingDeque.java:485)
	at java.util.concurrent.LinkedBlockingDeque.take(java.base@17.0.12/LinkedBlockingDeque.java:673)
	at sun.nio.fs.AbstractWatchService.take(java.base@17.0.12/AbstractWatchService.java:118)
	at org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120)
	at org.openstreetmap.josm.io.FileWatcher$$Lambda$415/0x00007f0540375200.run(Unknown Source)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"Weak reference cleaner" #28 prio=5 os_prio=0 cpu=0,19ms elapsed=3124,27s tid=0x00007f05c0b564d0 nid=0x2e56 in Object.wait()  [0x00007f053effe000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <0x00000006908865d8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:155)
	- locked <0x00000006908865d8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:176)
	at org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60)
	at org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$468/0x00007f05403be498.run(Unknown Source)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"JCS-ElementEventQueue-Thread-2" #39 daemon prio=5 os_prio=0 cpu=0,21ms elapsed=3109,89s tid=0x00007f04f06cc640 nid=0x2e62 waiting on condition  [0x00007f053c1fa000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000069b1769d0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@17.0.12/LinkedBlockingQueue.java:435)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@17.0.12/ThreadPoolExecutor.java:1062)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1122)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"CacheEventQueue.QProcessor-TMS_BLOCK_v2Thread-3" #40 daemon prio=5 os_prio=0 cpu=0,17ms elapsed=3109,73s tid=0x00007f04f0bd0600 nid=0x2e63 waiting on condition  [0x00007f04d0dfe000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000069b220bb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@17.0.12/LinkedBlockingQueue.java:435)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@17.0.12/ThreadPoolExecutor.java:1062)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1122)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"GT authority factory disposer" #41 daemon prio=5 os_prio=0 cpu=3,68ms elapsed=3108,50s tid=0x00007f05c10cd440 nid=0x2e64 in Object.wait()  [0x00007f04cd7fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.util.TimerThread.mainLoop(java.base@17.0.12/Timer.java:563)
	- locked <0x000000069b176c28> (a java.util.TaskQueue)
	at java.util.TimerThread.run(java.base@17.0.12/Timer.java:516)

"Timer-0" #42 prio=5 os_prio=0 cpu=303,58ms elapsed=3106,53s tid=0x00007f05c12f9340 nid=0x2e68 in Object.wait()  [0x00007f04cd3fa000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.util.TimerThread.mainLoop(java.base@17.0.12/Timer.java:563)
	- locked <0x000000069b220e10> (a java.util.TaskQueue)
	at java.util.TimerThread.run(java.base@17.0.12/Timer.java:516)

"InvokeLaterDispatcher" #45 daemon prio=5 os_prio=0 cpu=1,04ms elapsed=3106,05s tid=0x00007f05c14903d0 nid=0x2e6d waiting on condition  [0x00007f04cc1fe000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000069b221070> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@17.0.12/LinkedBlockingDeque.java:485)
	at com.sun.glass.ui.InvokeLaterDispatcher.run(javafx.graphics/InvokeLaterDispatcher.java:109)

"JavaFX Application Thread" #46 prio=5 os_prio=0 cpu=30862,17ms elapsed=3106,05s tid=0x00007f05c14dfb80 nid=0x2e6e runnable  [0x00007f04ca863000]
   java.lang.Thread.State: RUNNABLE
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(javafx.graphics/Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(javafx.graphics/GtkApplication.java:277)
	at com.sun.glass.ui.gtk.GtkApplication$$Lambda$1055/0x00007f054070f4a8.run(javafx.graphics/Unknown Source)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"RemoteControl HTTP Server" #48 daemon prio=5 os_prio=0 cpu=1,24ms elapsed=3105,13s tid=0x00007f05c1579b90 nid=0x2e7a runnable  [0x00007f04d7ffe000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.Net.accept(java.base@17.0.12/Native Method)
	at sun.nio.ch.NioSocketImpl.accept(java.base@17.0.12/NioSocketImpl.java:760)
	at java.net.ServerSocket.implAccept(java.base@17.0.12/ServerSocket.java:675)
	at java.net.ServerSocket.platformImplAccept(java.base@17.0.12/ServerSocket.java:641)
	at java.net.ServerSocket.implAccept(java.base@17.0.12/ServerSocket.java:617)
	at java.net.ServerSocket.implAccept(java.base@17.0.12/ServerSocket.java:574)
	at java.net.ServerSocket.accept(java.base@17.0.12/ServerSocket.java:532)
	at org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

"RemoteControl HTTP Server" #49 daemon prio=5 os_prio=0 cpu=0,75ms elapsed=3105,12s tid=0x00007f05c1500c00 nid=0x2e7b runnable  [0x00007f04c8dd2000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.Net.accept(java.base@17.0.12/Native Method)
	at sun.nio.ch.NioSocketImpl.accept(java.base@17.0.12/NioSocketImpl.java:760)
	at java.net.ServerSocket.implAccept(java.base@17.0.12/ServerSocket.java:675)
	at java.net.ServerSocket.platformImplAccept(java.base@17.0.12/ServerSocket.java:641)
	at java.net.ServerSocket.implAccept(java.base@17.0.12/ServerSocket.java:617)
	at java.net.ServerSocket.implAccept(java.base@17.0.12/ServerSocket.java:574)
	at java.net.ServerSocket.accept(java.base@17.0.12/ServerSocket.java:532)
	at org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

"message-notifier-0" #50 prio=5 os_prio=0 cpu=1918,87ms elapsed=3104,81s tid=0x00007f05c14e52a0 nid=0x2e7c waiting on condition  [0x00007f04c8cd1000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000068fcb77a0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(java.base@17.0.12/LockSupport.java:252)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@17.0.12/AbstractQueuedSynchronizer.java:1674)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@17.0.12/ScheduledThreadPoolExecutor.java:1182)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@17.0.12/ScheduledThreadPoolExecutor.java:899)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@17.0.12/ThreadPoolExecutor.java:1062)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1122)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"changeset-updater-0" #52 prio=5 os_prio=0 cpu=6,68ms elapsed=3104,80s tid=0x00007f05c170ba00 nid=0x2e7e waiting on condition  [0x00007f04c8acf000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x000000069737aef0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(java.base@17.0.12/LockSupport.java:252)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@17.0.12/AbstractQueuedSynchronizer.java:1674)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@17.0.12/ScheduledThreadPoolExecutor.java:1182)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@17.0.12/ScheduledThreadPoolExecutor.java:899)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@17.0.12/ThreadPoolExecutor.java:1062)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.12/ThreadPoolExecutor.java:1122)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.12/ThreadPoolExecutor.java:635)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"DestroyJavaVM" #53 prio=5 os_prio=0 cpu=10871,99ms elapsed=3104,80s tid=0x00007f05c0015dd0 nid=0x2e14 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Timer-1" #55 daemon prio=6 os_prio=0 cpu=734,51ms elapsed=3096,81s tid=0x00007f04e41c4060 nid=0x2e82 in Object.wait()  [0x00007f059c8f1000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <no object reference available>
	at java.util.TimerThread.mainLoop(java.base@17.0.12/Timer.java:563)
	- locked <0x000000069737b148> (a java.util.TaskQueue)
	at java.util.TimerThread.run(java.base@17.0.12/Timer.java:516)

"Timer-2" #56 prio=6 os_prio=0 cpu=0,17ms elapsed=3095,06s tid=0x00007f04e42086d0 nid=0x2e84 in Object.wait()  [0x00007f04c88cd000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <0x000000069737b328> (a java.util.TaskQueue)
	at java.lang.Object.wait(java.base@17.0.12/Object.java:338)
	at java.util.TimerThread.mainLoop(java.base@17.0.12/Timer.java:537)
	- locked <0x000000069737b328> (a java.util.TaskQueue)
	at java.util.TimerThread.run(java.base@17.0.12/Timer.java:516)

"Map Status Collector" #57 daemon prio=6 os_prio=0 cpu=652,70ms elapsed=3094,51s tid=0x00007f04e44c6550 nid=0x2e85 waiting on condition  [0x00007f04c87cc000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method)
	- parking to wait for  <0x0000000699e01428> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:341)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@17.0.12/AbstractQueuedSynchronizer.java:506)
	at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.12/ForkJoinPool.java:3465)
	at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.12/ForkJoinPool.java:3436)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@17.0.12/AbstractQueuedSynchronizer.java:1625)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@17.0.12/LinkedBlockingQueue.java:435)
	at org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:441)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"Prism Font Disposer" #62 daemon prio=10 os_prio=0 cpu=0,20ms elapsed=3092,66s tid=0x00007f0531de3990 nid=0x2e8a in Object.wait()  [0x00007f04c793f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@17.0.12/Native Method)
	- waiting on <0x000000069b1770c0> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:155)
	- locked <0x000000069b1770c0> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@17.0.12/ReferenceQueue.java:176)
	at com.sun.javafx.font.Disposer.run(javafx.graphics/Disposer.java:93)
	at java.lang.Thread.run(java.base@17.0.12/Thread.java:840)

"VM Thread" os_prio=0 cpu=337,76ms elapsed=3130,33s tid=0x00007f05c024ace0 nid=0x2e1a runnable  

"GC Thread#0" os_prio=0 cpu=681,61ms elapsed=3130,34s tid=0x00007f05c009be10 nid=0x2e15 runnable  

"GC Thread#1" os_prio=0 cpu=651,50ms elapsed=3130,10s tid=0x00007f05380050b0 nid=0x2e27 runnable  

"GC Thread#2" os_prio=0 cpu=632,12ms elapsed=3130,10s tid=0x00007f0538005af0 nid=0x2e28 runnable  

"GC Thread#3" os_prio=0 cpu=688,65ms elapsed=3130,10s tid=0x00007f0538006530 nid=0x2e29 runnable  

"G1 Main Marker" os_prio=0 cpu=4,52ms elapsed=3130,34s tid=0x00007f05c00a8c90 nid=0x2e16 runnable  

"G1 Conc#0" os_prio=0 cpu=2264,38ms elapsed=3130,34s tid=0x00007f05c00a9c00 nid=0x2e17 runnable  

"G1 Refine#0" os_prio=0 cpu=141,69ms elapsed=3130,34s tid=0x00007f05c0106580 nid=0x2e18 runnable  

"G1 Refine#1" os_prio=0 cpu=31,31ms elapsed=3108,12s tid=0x00007f05880093d0 nid=0x2e65 runnable  

"G1 Refine#2" os_prio=0 cpu=0,70ms elapsed=3108,09s tid=0x00007f051461af30 nid=0x2e66 runnable  

"G1 Refine#3" os_prio=0 cpu=0,13ms elapsed=3108,07s tid=0x00007f0510003e40 nid=0x2e67 runnable  

"G1 Service" os_prio=0 cpu=1594,73ms elapsed=3130,34s tid=0x00007f05c0107480 nid=0x2e19 runnable  

"VM Periodic Task Thread" os_prio=0 cpu=4971,42ms elapsed=3130,16s tid=0x00007f05c0018770 nid=0x2e26 waiting on condition  

JNI global refs: 107, weak refs: 4912

Heap
 garbage-first heap   total 819200K, used 256086K [0x000000068ec00000, 0x0000000800000000)
  region size 4096K, 6 young (24576K), 3 survivors (12288K)
 Metaspace       used 86800K, committed 87680K, reserved 1179648K
  class space    used 10746K, committed 11136K, reserved 1048576K

Change History (5)

by skyper, 8 months ago

Attachment: JOSM_conflict_bug.joz added

session to reproduce

comment:1 by skyper, 8 months ago

Summary: Merging duplicated layers with little differences after a successful upload stalls JOSMMerging duplicated layers with little differences stalls JOSM

comment:2 by skyper, 8 months ago

Description: modified (diff)

comment:3 by taylor.smock, 8 months ago

Resolution: fixed
Status: newclosed

In 19228/josm:

Fix #23930: Merging duplicated layers with little differences stalls JOSM

This is fixed by keeping the "last" conflict in the problem if statement body.

comment:4 by taylor.smock, 8 months ago

Milestone: 24.09

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.