Modify

Opened 4 years ago

Closed 4 years ago

#19362 closed defect (fixed)

Infinite loop

Reported by: Adrian Owned by: Don-vip
Priority: normal Milestone:
Component: Plugin http2 Version: tested
Keywords: template_report infinite_loop Cc:

Description

I find that JOSM quite often gets into an infinite loop. This can happen at startup - see attached screenshot - or later on. The strange thing about this loop is that it runs in the background and it does not tie up all the processor cores. So JOSM remains usable, but it has a reduced amount of processing power available. Usually it is hearing the cooling fans start up, that alerts me that the loop has occurred. I have initiated this ticket while the infinite loop is in progress. The processor in my computer has four physical cores - eight virtual cores. Usually two or four virtual cores are tied up; in the screenshot it is four cores. The graph at the bottom of the Activity Monitor window shows the CPU load over about the last two minutes.

How can I collect more information to help in diagnosing the problem?

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2020-06-02 08:27:29 +0200 (Tue, 02 Jun 2020)
Revision:16538
Build-Date:2020-06-02 11:11:35
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (16538 en_GB) Mac OS X 10.14.6
OS Build number: Mac OS X 10.14.6 (18G5033)
Memory Usage: 918 MB / 4096 MB (766 MB allocated, but free)
Java version: 11.0.7+10, AdoptOpenJDK, OpenJDK 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 725375437 1920x1200
Maximum Screen Size: 1920x1200

Plugins:
+ ImportImagePlugin (35248)
+ InfoMode (35248)
+ PicLayer (35405)
+ apache-commons (35362)
+ cadastre-fr (35405)
+ editgpx (35248)
+ ejml (35313)
+ geotools (35169)
+ http2 (35427)
+ imagery_offset_db (35405)
+ jaxb (35092)
+ jts (35122)
+ log4j (35092)
+ measurement (35405)
+ opendata (35405)
+ photo_geotagging (35405)
+ poly (35248)
+ reverter (35474)
+ turnrestrictions (35405)
+ undelete (35474)
+ utilsplugin2 (35476)
+ waydownloader (35405)

Attachments (1)

Screenshot 19362.png (376.6 KB ) - added by Adrian 4 years ago.
Screenshot showing infinite loop

Download all attachments as: .zip

Change History (7)

by Adrian, 4 years ago

Attachment: Screenshot 19362.png added

Screenshot showing infinite loop

comment:1 by skyper, 4 years ago

Does it happen without any plugin and/or an new, empty preferences?

comment:2 by Adrian, 4 years ago

My tests show that the loop is caused by a complex interaction between a plugin, the preferences and online resources.

My regular setup, launched with --skip-plugins on the command line: no loop.
With an empty preferences directory (and therefore no plugins): no loop.
With an empty preferences directory and the set of plugins in the status report: no loop.
My regular setup, launched and running while my computer is offline: no loop.

By selectively disabling plugins, I found that it is the http2 plugin which is involved in the loop.

So, it seems that a preference is causing the loop, in conjunction with the http2 plugin. I identified the plugin by disabling half of the plugins, then when I found which half of the plugins contained the problem, I disabled half of that half, and so on. I expect a similar approach would work with the preferences, but it would be much more laborious. I assume the problem is in a preference which is a URL. But there are many such preferences. I would be grateful for any suggestions on how to proceed, or suggestions of which preferences might be most likely to be causing the problem.

comment:3 by simon04, 4 years ago

Component: CorePlugin http2
Owner: changed from team to Don-vip

Thank you for your (presumably time consuming) analysis!

Could you, by any change, obtain a thread dump when JOSM hangs? This would be of great help for debugging. Here are two tutorials how to do: https://www.baeldung.com/java-thread-dump#from-the-command-line or https://access.redhat.com/solutions/18178

comment:4 by Don-vip, 4 years ago

Running http2 plugin with Java < 13 is not advised (very buggy). Could you please try with Java 14 or 15-ea?

comment:5 by Adrian, 4 years ago

So far, with Java 14 there has been no infinite loop. Presumably this is the resolution of the problem. In which case, thank you. Are there any disadvantages to using Java 14?

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2020-06-02 08:27:29 +0200 (Tue, 02 Jun 2020)
Revision:16538
Build-Date:2020-06-02 11:11:35
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (16538 en_GB) Mac OS X 10.14.6
OS Build number: Mac OS X 10.14.6 (18G5033)
Memory Usage: 304 MB / 4096 MB (137 MB allocated, but free)
Java version: 14.0.1+7, AdoptOpenJDK, OpenJDK 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 725375437 1920x1200
Maximum Screen Size: 1920x1200

comment:6 by Adrian, 4 years ago

Resolution: fixed
Status: newclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Don-vip.
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.