#11591 closed defect (fixed)
JOSM r8519 refuses to start (deadlock in splash screen)
Reported by: | rickmastfan67 | Owned by: | team |
---|---|---|---|
Priority: | blocker | Milestone: | 15.08 |
Component: | Core | Version: | latest |
Keywords: | deadlock splashscreen edt regression | Cc: | simon04 |
Description
Just downloaded the new 'latest' r8519 today. So, I go ahead and place it where I run JOSM from and then start JOSM. Unfortunately, JOSM then completely refuses to start. I don't even get an error to report. Java starts up and then just 'sits there' doing absolutely nothing. So, I can't even give you a status report.
Everything was working fine with the previous latest released, r8514.
I thought that the problem might have been inside my profile, so I renamed the profile locations and tried to start JOSM again. I got the message about creating a new profile in the console, but that was it. I left running for over 2 minutes after that, and got no other response from JOSM in the console window after that.
So, some change in [8515], [8516], [8517], [8518], or [8519] completely broke JOSM running in Windows. If I had to make a guess since JOSM is giving no error report, I would think [8516] might be the culprit.
Anyways, here's the status report from the last working JOSM copy I have, r8514, to help figure out what might be going on here.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2015-06-21 01:33:40 Last Changed Author: Don-vip Revision: 8514 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Relative URL: ^/trunk URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2015-06-21 03:19:37 +0200 (Sun, 21 Jun 2015) Last Changed Rev: 8514 Identification: JOSM/1.5 (8514 en) Windows 7 64-Bit Memory Usage: 366 MB / 1820 MB (217 MB allocated, but free) Java version: 1.7.0_79, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM Plugins: - ImageryCache (31148) - OpeningHoursEditor (31241) - buildings_tools (31241) - measurement (31241) - mirrored_download (31241) - osmarender (31241) - reverter (31241) - turnrestrictions (31241) - undelete (31241) - utilsplugin2 (31241)
Attachments (1)
Change History (29)
comment:1 by , 9 years ago
comment:3 by , 9 years ago
Milestone: | → 15.07 |
---|
comment:4 by , 9 years ago
Cc: | added |
---|---|
Keywords: | deadlock splashscreen edt regression added |
comment:5 by , 9 years ago
Summary: | JOSM r8519 refuses to start. → JOSM r8519 refuses to start (deadlock in splash screen) |
---|
comment:7 by , 9 years ago
comment:8 by , 9 years ago
Can confirm the fix - this fixes the not starting version, but no splash-screen any more.
comment:14 by , 9 years ago
Initializing the SplashScreen
in the EDT seems to resolve the lock – after 20 starts I couldn't reproduce a deadlock.
In org.openstreetmap.josm.gui.MainApplication#main
, several EDT violations are reported starting with the statement final JFrame mainFrame = new JFrame(tr("Java OpenStreetMap Editor"));
(to see those, one has to move the RepaintManager.setCurrentManager(new CheckThreadViolationRepaintManager());
to the beginning of the method). Are those violations to be resolved?
comment:15 by , 9 years ago
Doesn't work here with r8525
Running with --debug
it freezes here:
$ josm --debug Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Xms256M -Xmx4g -XX:+UseConcMarkSweepGC -XX:+UseCompressedOops INFO: Imprimindo mensagens de depuração no console DEBUG: System property 'http.agent' set to 'JOSM/1.5 (8525 pt_BR) Linux Debian GNU/Linux unstable (sid)'. Old value was 'null' DEBUG: System property 'user.language' set to ''. Old value was 'pt' DEBUG: System property 'jsse.enableSNIExtension' set to 'false'. Old value was 'null' DEBUG: System property 'java.util.Arrays.useLegacyMergeSort' set to 'true'. Old value was 'null' DEBUG: System property 'http.agent' set to 'JOSM/1.5 (8525 pt_BR) Linux Debian GNU/Linux unstable (sid)'. Old value was 'JOSM/1.5 (8525 pt_BR) Linux Debian GNU/Linux unstable (sid)' DEBUG: System property 'user.language' set to ''. Old value was '' DEBUG: System property 'jsse.enableSNIExtension' set to 'false'. Old value was 'false' DEBUG: System property 'java.util.Arrays.useLegacyMergeSort' set to 'true'. Old value was 'true'
and nothing appears.
comment:17 by , 9 years ago
Can reproduce (splash screen isn't showing):
$ josm-latest --debug Using /usr/lib/jvm/java-7-openjdk-amd64/bin/java to execute josm-latest. INFO: Printing debugging messages to console DEBUG: System property 'http.agent' set to 'JOSM/1.5 (8541 en) Linux Ubuntu 14.04.2 LTS'. Old value was 'null' DEBUG: System property 'user.language' set to ''. Old value was 'en' DEBUG: System property 'jsse.enableSNIExtension' set to 'false'. Old value was 'null' DEBUG: System property 'java.util.Arrays.useLegacyMergeSort' set to 'true'. Old value was 'null' DEBUG: System property 'http.agent' set to 'JOSM/1.5 (8541 en) Linux Ubuntu 14.04.2 LTS'. Old value was 'JOSM/1.5 (8541 en) Linux Ubuntu 14.04.2 LTS' DEBUG: System property 'user.language' set to ''. Old value was '' DEBUG: System property 'jsse.enableSNIExtension' set to 'false'. Old value was 'false' DEBUG: System property 'java.util.Arrays.useLegacyMergeSort' set to 'true'. Old value was 'true' DEBUG: Exception while checking IPv6 connectivity: java.net.UnknownHostException: josm.openstreetmap.de: Name or service not known ^\2015-06-29 21:43:52 Full thread dump OpenJDK 64-Bit Server VM (24.79-b02 mixed mode): "TimerQueue" daemon prio=10 tid=0x00007fc6f4093000 nid=0x7de3 waiting on condition [0x00007fc73baaa000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000007d835b208> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at java.util.concurrent.DelayQueue.take(DelayQueue.java:209) at javax.swing.TimerQueue.run(TimerQueue.java:171) at java.lang.Thread.run(Thread.java:745) "AWT-EventQueue-0" prio=10 tid=0x00007fc7645c0000 nid=0x7de2 waiting for monitor entry [0x00007fc73bba9000] java.lang.Thread.State: BLOCKED (on object monitor) at java.awt.Component.invalidate(Component.java:2920) - waiting to lock <0x00000007844ddbd0> (a java.awt.Component$AWTTreeLock) at java.awt.Container.invalidate(Container.java:1580) at javax.swing.JComponent.revalidate(JComponent.java:4853) at javax.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(BasicTextUI.java:1406) at javax.swing.text.View.preferenceChanged(View.java:289) at javax.swing.text.BoxView.preferenceChanged(BoxView.java:286) at javax.swing.text.View.preferenceChanged(View.java:289) at javax.swing.text.BoxView.preferenceChanged(BoxView.java:286) at javax.swing.text.View.preferenceChanged(View.java:289) at javax.swing.text.BoxView.preferenceChanged(BoxView.java:286) at javax.swing.text.View.preferenceChanged(View.java:289) at javax.swing.text.View.preferenceChanged(View.java:289) at javax.swing.text.GlyphView.removeUpdate(GlyphView.java:937) at javax.swing.text.html.InlineView.removeUpdate(InlineView.java:80) at javax.swing.text.View.forwardUpdateToView(View.java:1218) at javax.swing.text.FlowView$LogicalView.forwardUpdateToView(FlowView.java:795) at javax.swing.text.FlowView$LogicalView.forwardUpdate(FlowView.java:810) at javax.swing.text.View.removeUpdate(View.java:747) at javax.swing.text.FlowView.removeUpdate(FlowView.java:269) at javax.swing.text.View.forwardUpdateToView(View.java:1218) at javax.swing.text.View.forwardUpdate(View.java:1158) at javax.swing.text.BoxView.forwardUpdate(BoxView.java:240) at javax.swing.text.View.removeUpdate(View.java:747) at javax.swing.text.View.forwardUpdateToView(View.java:1218) at javax.swing.text.View.forwardUpdate(View.java:1158) at javax.swing.text.BoxView.forwardUpdate(BoxView.java:240) at javax.swing.text.View.removeUpdate(View.java:747) at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(BasicTextUI.java:1616) at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(BasicTextUI.java:1876) at javax.swing.text.AbstractDocument.fireRemoveUpdate(AbstractDocument.java:260) at javax.swing.text.AbstractDocument.handleRemove(AbstractDocument.java:623) at javax.swing.text.AbstractDocument.remove(AbstractDocument.java:591) at javax.swing.JEditorPane.setText(JEditorPane.java:1407) at org.openstreetmap.josm.gui.SplashScreen$SplashScreenProgressRenderer.setTasks(SplashScreen.java:391) at org.openstreetmap.josm.gui.SplashScreen$2.run(SplashScreen.java:127) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:706) at java.awt.EventQueue$3.run(EventQueue.java:704) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:715) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) "AWT-Shutdown" prio=10 tid=0x00007fc7645a0000 nid=0x7de1 in Object.wait() [0x00007fc7412e8000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007daef0d98> (a java.lang.Object) at java.lang.Object.wait(Object.java:503) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:296) - locked <0x00000007daef0d98> (a java.lang.Object) at java.lang.Thread.run(Thread.java:745) "process reaper" daemon prio=10 tid=0x00007fc764546000 nid=0x7dde waiting on condition [0x00007fc76804f000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000007dafdb178> (a java.util.concurrent.SynchronousQueue$TransferStack) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359) at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) "AWT-XAWT" daemon prio=10 tid=0x00007fc7644ba800 nid=0x7ddc runnable [0x00007fc7413e9000] java.lang.Thread.State: RUNNABLE at sun.awt.X11.XToolkit.waitForEvents(Native Method) at sun.awt.X11.XToolkit.run(XToolkit.java:541) at sun.awt.X11.XToolkit.run(XToolkit.java:505) at java.lang.Thread.run(Thread.java:745) "Java2D Disposer" daemon prio=10 tid=0x00007fc76449f000 nid=0x7ddb in Object.wait() [0x00007fc748111000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007daf7e230> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) - locked <0x00000007daf7e230> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) at sun.java2d.Disposer.run(Disposer.java:145) at java.lang.Thread.run(Thread.java:745) "File Watcher" prio=10 tid=0x00007fc764430800 nid=0x7dda waiting on condition [0x00007fc749bab000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000007dafdba38> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:489) at java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:678) at sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118) at org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:109) at org.openstreetmap.josm.io.FileWatcher.access$000(FileWatcher.java:30) at org.openstreetmap.josm.io.FileWatcher$1.run(FileWatcher.java:46) at java.lang.Thread.run(Thread.java:745) "Thread-0" daemon prio=10 tid=0x00007fc76442f000 nid=0x7dd9 runnable [0x00007fc749cac000] java.lang.Thread.State: RUNNABLE at sun.nio.fs.LinuxWatchService.poll(Native Method) at sun.nio.fs.LinuxWatchService.access$600(LinuxWatchService.java:47) at sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:311) at java.lang.Thread.run(Thread.java:745) "Service Thread" daemon prio=10 tid=0x00007fc764317000 nid=0x7dd7 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread1" daemon prio=10 tid=0x00007fc764314800 nid=0x7dd6 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread0" daemon prio=10 tid=0x00007fc764311800 nid=0x7dd5 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x00007fc76430f800 nid=0x7dd4 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x00007fc7642e3800 nid=0x7dd3 in Object.wait() [0x00007fc7604f3000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007daf982b0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) - locked <0x00000007daf982b0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209) "Reference Handler" daemon prio=10 tid=0x00007fc7642e1800 nid=0x7dd2 in Object.wait() [0x00007fc7605f4000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007daf62a58> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:503) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) - locked <0x00000007daf62a58> (a java.lang.ref.Reference$Lock) "main" prio=10 tid=0x00007fc76400a000 nid=0x7dc8 in Object.wait() [0x00007fc76dcc6000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007d83487a0> (a javax.swing.text.html.HTMLDocument) at java.lang.Object.wait(Object.java:503) at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1387) - locked <0x00000007d83487a0> (a javax.swing.text.html.HTMLDocument) at javax.swing.plaf.basic.BasicTextUI.getMinimumSize(BasicTextUI.java:942) at javax.swing.JEditorPane.getScrollableTracksViewportHeight(JEditorPane.java:1482) at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:808) at java.awt.Container.layout(Container.java:1503) at java.awt.Container.doLayout(Container.java:1492) at java.awt.Container.validateTree(Container.java:1688) at java.awt.Container.validateTree(Container.java:1697) at java.awt.Container.validateTree(Container.java:1697) at java.awt.Container.validateTree(Container.java:1697) at java.awt.Container.validateTree(Container.java:1697) at java.awt.Container.validateTree(Container.java:1697) at java.awt.Container.validateTree(Container.java:1697) at java.awt.Container.validate(Container.java:1623) - locked <0x00000007844ddbd0> (a java.awt.Component$AWTTreeLock) at java.awt.Container.validateUnconditionally(Container.java:1660) - locked <0x00000007844ddbd0> (a java.awt.Component$AWTTreeLock) at java.awt.Window.show(Window.java:1033) at java.awt.Component.show(Component.java:1655) at java.awt.Component.setVisible(Component.java:1607) at java.awt.Window.setVisible(Window.java:1014) at org.openstreetmap.josm.gui.MainApplication.main(MainApplication.java:413) "VM Thread" prio=10 tid=0x00007fc7642dd000 nid=0x7dd1 runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007fc764020000 nid=0x7dc9 runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007fc764021800 nid=0x7dca runnable "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007fc764023800 nid=0x7dcb runnable "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007fc764025800 nid=0x7dcc runnable "GC task thread#4 (ParallelGC)" prio=10 tid=0x00007fc764027800 nid=0x7dcd runnable "GC task thread#5 (ParallelGC)" prio=10 tid=0x00007fc764029000 nid=0x7dce runnable "GC task thread#6 (ParallelGC)" prio=10 tid=0x00007fc76402b000 nid=0x7dcf runnable "GC task thread#7 (ParallelGC)" prio=10 tid=0x00007fc76402d000 nid=0x7dd0 runnable "VM Periodic Task Thread" prio=10 tid=0x00007fc764321800 nid=0x7dd8 waiting on condition JNI global references: 392 Heap PSYoungGen total 69632K, used 33005K [0x00000007d6a80000, 0x00000007db380000, 0x0000000800000000) eden space 64512K, 43% used [0x00000007d6a80000,0x00000007d85bc408,0x00000007da980000) from space 5120K, 99% used [0x00000007dae80000,0x00000007db37f3a0,0x00000007db380000) to space 5120K, 0% used [0x00000007da980000,0x00000007da980000,0x00000007dae80000) ParOldGen total 84480K, used 9636K [0x0000000784000000, 0x0000000789280000, 0x00000007d6a80000) object space 84480K, 11% used [0x0000000784000000,0x0000000784969320,0x0000000789280000) PSPermGen total 21504K, used 20174K [0x0000000779a00000, 0x000000077af00000, 0x0000000784000000) object space 21504K, 93% used [0x0000000779a00000,0x000000077adb3990,0x000000077af00000) Quit (core dumped)
comment:18 by , 9 years ago
I can reproduce, also, with the same thread dump as shown above on 1.7.0_80. Works on 1.8.0_45, though.
comment:20 by , 9 years ago
follow-ups: 24 25 comment:22 by , 9 years ago
Firstly I'd say that adding "(deadlock in splash screen)" to the description of this issue was not ok since the OP doesn't mention a GUI/splashscreen at all.
I am not sure if all people reporting issues when starting JOSM had the identical problem or if there were/are at least two issues preventing JOSM from starting.
Some days ago I could use JOSM latest again after switching from OpenJDK7 to OpenJDK8 but today JOSM latest (r8561) again didn't start.
So I probed around with different Java versions and r8562:
Oracle
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
blank ~/.josm works
my configured ~/.josm does not show a GUI
Oracle
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
blank ~/.josm works
my configured ~/.josm shows the GUI but does not show loaded data: Signal 3: https://paste.debian.net/278835/
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
blank ~/.josm works
my configured ~/.josm does not show a GUI
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
blank ~/.josm works
my configured ~/.josm shows the GUI but does not show loaded data: Signal 3 https://paste.debian.net/278833/
Since blank ~/.josm always worked I reduced the plugins JOSM loaded – and found that in my case scoutsigns was the culprit preventing JOSM from working. The issue for scoutsigns: #11646
My problem is solved so far after 1h30 min of bug hunting…
[Edit: linked scoutsign ticket]
comment:24 by , 9 years ago
follow-up: 26 comment:25 by , 9 years ago
Replying to malenki:
[...]
blank ~/.josm works
my configured ~/.josm shows the GUI but does not show loaded data: Signal 3 https://paste.debian.net/278833/
Since blank ~/.josm always worked I reduced the plugins JOSM loaded – and found that in my case scoutsigns was the culprit preventing JOSM from working.
My problem is solved so far after 1h30 min of bug hunting…
Congrats on finding the problem. Please create a separate bug report for the scoutsigns plugin!
comment:26 by , 9 years ago
Replying to bastiK:
Congrats on finding the problem. Please create a separate bug report for the scoutsigns plugin!
Thank you for fixing one of the bugs – which happened while I was hunting "my" bug.
I did create a ticket on scoutsigns after commenting above but didn't link it here which I fixed now (see my comment above).
For convenience I mention it also here: #11646
Same problem existing in Linux - seems to be some deadlock. Attached a stacktrace for the problem.