Modify

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#13644 closed defect (fixed)

complete freeze on startup opening or new layer creation

Reported by: grinapo Owned by: team
Priority: major Milestone: 16.10
Component: Core Version: latest
Keywords: template_report Cc: michael2402

Description

After start either loading data or creating a new layer JOSM opens the windows (layers, selection, authors, ..) and stays there, empty windows, forever. Cpu is not maxed out.

Console doesn't say anything meaningful, the last lines are just:

Sep 17, 2016 1:07:33 AM org.openstreetmap.josm.Main info
INFO: Reassigning shortcut 'reltoolbox:addremove' from null to 576 because of conflict with Equals
Sep 17, 2016 1:07:33 AM org.openstreetmap.josm.Main info
INFO: Silent shortcut conflict: 'reltoolbox:addremove' moved by 'view:zoominter' to 'Alt+Shift+F1'.
Sep 17, 2016 1:07:34 AM org.openstreetmap.josm.Main warn
WARNING: Old style SideButton usage for action org.openstreetmap.josm.plugins.mapillary.gui.MapillaryChangesetDialog$SubmitAction@54d82c53
Sep 17, 2016 1:07:34 AM org.openstreetmap.josm.Main info
INFO: Reassigning shortcut 'subwindow:junctionchecker' from null to 576 because of conflict with Alt+Shift+J
Sep 17, 2016 1:07:34 AM org.openstreetmap.josm.Main info
INFO: Silent shortcut conflict: 'subwindow:junctionchecker' moved by 'tools:extnode' to 'Alt+Shift+F2'.
Sep 17, 2016 1:07:34 AM org.openstreetmap.josm.Main warn
WARNING: Old style SideButton usage for action org.openstreetmap.josm.plugins.JunctionChecker.JunctionCheckDialog$1@1fda8e56
Sep 17, 2016 1:07:34 AM org.openstreetmap.josm.Main warn
WARNING: Old style SideButton usage for action org.openstreetmap.josm.plugins.JunctionChecker.JunctionCheckDialog$2@181a9bd3
Sep 17, 2016 1:07:34 AM org.openstreetmap.josm.Main warn
WARNING: Old style SideButton usage for action org.openstreetmap.josm.plugins.JunctionChecker.JunctionCheckDialog$3@18478da8

On ctrl-c I get

^CRelease shared lock on /tmp/grin/netx/locks/netx_running
No other instances of netx are running
[INFO] CompositeCacheManager - Shutdown hook activated.  Shutdown was not called.  Shutting down JCS.
[INFO] ElementEventQueue - Element event queue destroyed: org.apache.commons.jcs.engine.control.event.ElementEventQueue@107472e
[INFO] CompositeCache - In DISPOSE, [mapillary] fromRemote [false]
[INFO] CompositeCache - In DISPOSE, [mapillary] auxiliary [mapillary_BLOCK_v2]
[INFO] CompositeCache - In DISPOSE, [mapillary] put 0 into auxiliary mapillary_BLOCK_v2
[INFO] AbstractDiskCache - No longer waiting for event queue to finish: Cache Event Queue
Working = true
Alive = false
Empty = true
Size = 0
[INFO] AbstractDiskCache - In dispose, destroying event queue.
[INFO] CacheEventQueue - Destroy was called after queue was destroyed.  Doing nothing.  Stats =  Cache Event Queue
Working = true
Alive = false
Empty = true
Size = 0
[INFO] BlockDiskKeyStore - Region [mapillary_BLOCK_v2] Saving keys to [/home/***/.josm/plugins/Mapillary/cache/mapillary_BLOCK_v2.key], key count [124]
[INFO] BlockDiskKeyStore - Region [mapillary_BLOCK_v2] Finished saving keys. It took 8ms. to store 124 keys.  Key file length [16452]
[INFO] BlockDiskCache - Region [mapillary_BLOCK_v2] Shutdown complete.
[INFO] CompositeCache - In DISPOSE, [mapillary] disposing of memory cache.
[INFO] AbstractMemoryCache - Memory Cache dispose called.

URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2016-09-15 21:40:33 +0200 (Thu, 15 Sep 2016)
Build-Date:2016-09-16 01:35:03
Revision:11004
Relative:URL: ^/trunk

Identification: JOSM/1.5 (11004 en) Linux Debian GNU/Linux unstable (sid)
Memory Usage: 230 MB / 7116 MB (81 MB allocated, but free)
Java version: 1.8.0_91-8u91-b14-3-b14, Oracle Corporation, OpenJDK 64-Bit Server VM
Screen: :0.0 3200x1080, :0.1 1280x1024
Maximum Screen Size: 3200x1080
Java package: openjdk-8-jre:amd64-8u91-b14-3
WebStart package: icedtea-netx:amd64-1.6.2-3
Java ATK Wrapper package: libatk-wrapper-java:all-0.33.3-7
VM arguments: [-Dicedtea-web.bin.name=javaws, -Dicedtea-web.bin.location=/usr/bin/javaws, -Djava.security.manager, -Djava.security.policy=/etc/icedtea-web/javaws.policy]

Plugins:
+ AddrInterpolation (32699)
+ DirectUpload (32699)
+ FixAddresses (32796)
+ HouseNumberTaggingTool (32699)
+ InfoMode (32789)
+ Mapillary (32988)
+ OpeningHoursEditor (32699)
+ PicLayer (32796)
+ RoadSigns (32796)
+ alignways (32921)
+ apache-commons (32699)
+ apache-http (32699)
+ buildings_tools (32944)
+ contourmerge (1022)
+ dataimport (32699)
+ download_along (32946)
+ ejml (32680)
+ ext_tools (32796)
+ fieldpapers (v0.4.0)
+ geochat (32796)
+ geotools (32813)
+ gpsblam (32745)
+ gpxfilter (32699)
+ graphview (32796)
+ gson (32680)
+ imagery_offset_db (32796)
+ jna (32699)
+ jts (32699)
+ junctionchecking (32879)
+ log4j (32699)
+ mapdust (32787)
+ measurement (32936)
+ merge-overlap (32699)
+ opendata (32898)
+ osmarender (32699)
+ pbf (32865)
+ photo_geotagging (32699)
+ rasterfilters (32877)
+ reltoolbox (32796)
+ reverter (32796)
+ routing (32796)
+ scripting (30730)
+ tageditor (32796)
+ turnlanes (32796)
+ turnrestrictions (32796)
+ undelete (32699)
+ utilsplugin2 (32815)
+ walkingpapers (32796)
+ waypoint_search (32699)

Tagging presets:
+ http://somewhere.dk/email/josm/source.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/OneClick&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/NewTags&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/OpenPisteMap&preset&zip=1
+ http://osmtools.de/josm/steps.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/geoimage.at&preset&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/BicycleJunction&preset&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Turistautkapcsolat&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Crafts&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Maxspeed-zones&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/OpenPisteMap&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/SkiingTrail&zip=1

Map paint styles:
- <josm.pref>/<user.name>/SurfaceTracktype.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Osmc&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/NumberedWalkingNodeNetworks&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/MaxspeedIcons&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Surface&style&zip=1
+ <josm.pref>/<user.name>/BikeNoAccess.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Styles/Modified&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lit&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Sidewalks&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Noname&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Fixme&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_features&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_features_ryg&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Cycleways&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Landcover&zip=1
- https://drive.google.com/uc?export=download&id=0ByBzOup047W9UWo0SWpoSzZOQVE
- https://josm.openstreetmap.de/josmfile?page=Styles/HU-HighlightHikingTrailSigns&style&zip=1
+ <josm.pref>/<user.name>/heyjoe_tuhu_unprocessed.mapcss
+ http://kolesar.turistautak.hu/osm/styles/measurements.mapcss
+ <josm.pref>/ebdirigo/style.zip

Attachments (0)

Change History (5)

comment:1 by Don-vip, 8 years ago

Cc: michael2402 added

comment:2 by michael2402, 8 years ago

I get random results when trying to reproduce this.

I can reproduce this, although the CPU is not at maximum for me. I got three versions:

  1. One deadlock (see below)
  2. the AWT thread stuck somewhere in the paint code allocating a lot of int[]s.
  3. triggered #12030

I will change the layer manager to use Read-Copy-Update to solve this. That way, getLayers() does not need to be synchronized any more.

2016-09-17 16:15:37
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.66-b17 mixed mode):

Found one Java-level deadlock:
=============================
"Timer-0":
  waiting to lock monitor 0x00007f0894c26db8 (object 0x0000000724027ae8, a org.openstreetmap.josm.gui.layer.MainLayerManager),
  which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
  waiting to lock monitor 0x00007f0850006218 (object 0x00000007270cb040, a iodb.ImageryOffsetWatcher),
  which is held by "Timer-0"

Java stack information for the threads listed above:
===================================================
"Timer-0":
	at org.openstreetmap.josm.gui.layer.LayerManager.getLayersOfType(LayerManager.java:302)
	- waiting to lock <0x0000000724027ae8> (a org.openstreetmap.josm.gui.layer.MainLayerManager)
	at iodb.ImageryOffsetTools.getTopImageryLayer(ImageryOffsetTools.java:39)
	at iodb.ImageryOffsetWatcher.checkOffset(ImageryOffsetWatcher.java:115)
	- locked <0x00000007270cb040> (a iodb.ImageryOffsetWatcher)
	at iodb.ImageryOffsetWatcher.access$300(ImageryOffsetWatcher.java:35)
	at iodb.ImageryOffsetWatcher$IntervalOffsetChecker.run(ImageryOffsetWatcher.java:274)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)
"AWT-EventQueue-0":
	at iodb.ImageryOffsetWatcher.checkOffset(ImageryOffsetWatcher.java:111)
	- waiting to lock <0x00000007270cb040> (a iodb.ImageryOffsetWatcher)
	at iodb.ImageryOffsetWatcher.layerAdded(ImageryOffsetWatcher.java:203)
	at org.openstreetmap.josm.gui.layer.LayerManager.fireLayerAdded(LayerManager.java:383)
	at org.openstreetmap.josm.gui.layer.LayerManager.realAddLayer(LayerManager.java:196)
	- locked <0x0000000724027ae8> (a org.openstreetmap.josm.gui.layer.MainLayerManager)
	at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:251)
	- locked <0x0000000724027ae8> (a org.openstreetmap.josm.gui.layer.MainLayerManager)
	at org.openstreetmap.josm.gui.layer.LayerManager.lambda$0(LayerManager.java:185)
	at org.openstreetmap.josm.gui.layer.LayerManager$$Lambda$139/257054278.run(Unknown Source)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:138)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:185)
	at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$AbstractInternalTask.addNewLayerIfRequired(DownloadOsmTask.java:263)
	at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$AbstractInternalTask.loadData(DownloadOsmTask.java:270)
	at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$DownloadTask.finish(DownloadOsmTask.java:352)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable$$Lambda$47/1325808650.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1673)
	at java.awt.Component.setVisible(Component.java:1625)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor.lambda$2(PleaseWaitProgressMonitor.java:186)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$$Lambda$128/192905680.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Found 1 deadlock.

comment:3 by michael2402, 8 years ago

Resolution: fixed
Status: newclosed

In 11011/josm:

Change LayerManager#getLayers() to not require a lock any more. Fixes #13644

comment:4 by Don-vip, 8 years ago

Milestone: 16.09

comment:5 by simon04, 8 years ago

Milestone: 16.0916.10

Milestone renamed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


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