Modify

Opened 3 weeks ago

Closed 11 days ago

Last modified 11 days ago

#24749 closed defect (fixed)

panoramax sometimes hangs the JOSM

Reported by: mnalis Owned by: taylor.smock
Priority: normal Milestone:
Component: Plugin panoramax Version:
Keywords: template_report Cc:

Description (last modified by mnalis)

What steps will reproduce the problem?

  1. I was solving notes and looking at Panoraamax images... I might've probably doubleclicked or something on images

What is the expected result?

Just a single panoramax image is fetched and displayed (at worst)

What happens instead?

It seems that panoramax decides to download tons of images (whole sequence) all by itself; and completely freezes the JOSM UI in the meantime (i.e. I cannot close panoramax picture window, or upload, or click any button) for minutes.

Meanwhile, in the console, I see it downloads tons of images automatically (every second or so a new one). Luckily, after minute and a half of complete unresponsiveness, it hits OOM which terminated the downloads and allowed JOSM UI to function again

2026-05-28 05:18:39.128 INFO: POST https://api.openstreetmap.org/api/0.6/notes/4492965/close?text=removed%2C+not+visible+on+Panoramax+either+anymore (0 B) ...
2026-05-28 05:18:39.393 INFO: POST https://api.openstreetmap.org/api/0.6/notes/4492965/close?text=removed%2C+not+visible+on+Panoramax+either+anymore -> HTTP/1.1 200 (204 ms; 752 B)
2026-05-28 05:18:39.393 INFO: OK
2026-05-28 05:19:10.160 INFO: HEAD https://api.panoramax.xyz/api/live -> HTTP/1.1 200 (110 ms)
2026-05-28 05:19:10.935 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items -> HTTP/1.1 200 (674 ms)
2026-05-28 05:19:11.809 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items?page=ts%3E%272025-03-27T16%3A02%3A08%2B00%3A00%27&limit=100 -> HTTP/1.1 200 (673 ms)
2026-05-28 05:19:12.645 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items?page=ts%3E%272025-04-05T13%3A51%3A38%2B00%3A00%27&limit=100 -> HTTP/1.1 200 (670 ms)
2026-05-28 05:19:13.552 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items?page=ts%3E%272025-04-06T12%3A55%3A30%2B00%3A00%27&limit=100 -> HTTP/1.1 200 (745 ms)
2026-05-28 05:19:14.442 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items?page=ts%3E%272025-04-07T10%3A09%3A47%2B00%3A00%27&limit=100 -> HTTP/1.1 200 (674 ms)

[... list heavily trimmed, as Trac antispam is refusing the ticket for having too many URLs...]

2026-05-28 05:20:49.855 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items?page=ts%3E%272025-08-13T08%3A19%3A41.578%2B00%3A00%27&limit=100 -> HTTP/1.1 200 (404 ms)
2026-05-28 05:20:51.286 INFO: GET https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/items?page=ts%3E%272025-08-13T23%3A03%3A19.196%2B00%3A00%27&limit=100 -> HTTP/1.1 200 (392 ms)
2026-05-28 05:21:04.218 SEVERE: Handled by bug report queue: java.lang.OutOfMemoryError: GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.base/jdk.internal.org.objectweb.asm.SymbolTable.addConstantUtf8(SymbolTable.java:807)
        at java.base/jdk.internal.org.objectweb.asm.MethodWriter.computeMethodInfoSize(MethodWriter.java:2122)
        at java.base/jdk.internal.org.objectweb.asm.ClassWriter.toByteArray(ClassWriter.java:543)
        at java.base/java.lang.invoke.InvokerBytecodeGenerator.toByteArray(InvokerBytecodeGenerator.java:879)
        at java.base/java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCodeBytes(InvokerBytecodeGenerator.java:758)
        at java.base/java.lang.invoke.InvokerBytecodeGenerator.generateCustomizedCode(InvokerBytecodeGenerator.java:712)
        at java.base/java.lang.invoke.LambdaForm.compileToBytecode(LambdaForm.java:849)
        at java.base/java.lang.invoke.LambdaForm.prepare(LambdaForm.java:807)
        at java.base/java.lang.invoke.MethodHandle.<init>(MethodHandle.java:482)
        at java.base/java.lang.invoke.BoundMethodHandle.<init>(BoundMethodHandle.java:52)
        at java.base/java.lang.invoke.BoundMethodHandle$Species_LL.<init>(java/lang/invoke/BoundMethodHandle$Species_LL)
        at java.base/java.lang.invoke.BoundMethodHandle$Species_LL.make(java/lang/invoke/BoundMethodHandle$Species_LL)
        at java.base/java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(DirectMethodHandle$Holder)
        at java.base/java.lang.invoke.BoundMethodHandle$Species_L.copyWithExtendL(BoundMethodHandle.java:236)
        at java.base/java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:333)
        at java.base/java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:265)
        at java.base/java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:382)
        at java.base/java.lang.invoke.MethodHandle.asTypeUncached(MethodHandle.java:905)
        at java.base/java.lang.invoke.MethodHandle.asType(MethodHandle.java:870)
        at java.base/java.lang.invoke.MethodHandle.asSpreader(MethodHandle.java:1113)
        at java.base/java.lang.invoke.MethodHandle.asSpreader(MethodHandle.java:1069)
        at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:113)
        at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200)
        at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
        at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseObject(PanoramaxDeserializer.java:91)
        at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parse(PanoramaxDeserializer.java:130)
        at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.lambda$parseImage$0(PanoramaxDeserializer.java:53)
        at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer$$Lambda/0x00007fc142cbe668.apply(Unknown Source)
        at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180)
        at java.base/java.util.stream.Collectors$$Lambda/0x00007fc1424fd448.accept(Unknown Source)

2026-05-28 05:21:04.474 INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> HTTP/1.1 200 (239 ms; 943 B)
2026-05-28 05:22:32.059 INFO: POST https://josm.openstreetmap.de/josmticket (8.39 kB) ...
2026-05-28 05:22:42.453 INFO: POST https://josm.openstreetmap.de/josmticket -> HTTP/1.1 200 (155 ms)
2026-05-28 05:22:42.489 INFO: Opening URL: https://josm.openstreetmap.de/josmticket?pdata_stored=7773fa9b7322b666556bb84b
2026-05-28 05:22:42.489 WARNING: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
        at java.desktop/java.awt.Desktop.checkActionSupport(Desktop.java:381)
        at java.desktop/java.awt.Desktop.browse(Desktop.java:531)
        at org.openstreetmap.josm.tools.PlatformHookUnixoid.openUrl(PlatformHookUnixoid.java:77)
        at org.openstreetmap.josm.tools.OpenBrowser.displayUrl(OpenBrowser.java:41)
        at org.openstreetmap.josm.tools.OpenBrowser.displayUrl(OpenBrowser.java:66)
        at org.openstreetmap.josm.gui.bugreport.DefaultBugReportSendingHandler.sendingBugReport(DefaultBugReportSendingHandler.java:30)
        at org.openstreetmap.josm.tools.bugreport.BugReportSender.run(BugReportSender.java:96)

2026-05-28 05:22:52.472 INFO: exporting notes to file: /home/mnalis/.local/share/JOSM/autosave/Notes_20260528_052252471.osn


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

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2026-03-28 20:28:41 +0100 (Sat, 28 Mar 2026)
Revision:19555
Build-Date:2026-03-29 01:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19555 en) Linux Debian GNU/Linux 13 (trixie)
Memory Usage: 2987 MB / 2987 MB (165 MB allocated, but free)
Java version: 21.0.11+10-1-deb13u2-Debian, Debian, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920x1080x[Multi depth]@60Hz (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_US.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: ICEWM
Java package: openjdk-21-jre:amd64-21.0.11+10-1~deb13u2
libcommons-logging-java: libcommons-logging-java:all-1.3.0-2
fonts-noto: fonts-noto:all-20201225-2
VM arguments: [-Dsun.java2d.opengl=true, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]
Dataset consistency test: No problems found

Plugins:
+ DirectUpload (36474)
+ FixAddresses (36474)
+ ImageWayPoint (36474)
+ Mapillary (1819)
+ PicLayer (273)
+ Review.Changes (1.1.1)
+ apache-commons (36474)
+ apache-http (36474)
+ buildings_tools (36474)
+ conflation (279)
+ ejml (36474)
+ geotools (36474)
+ imagery_offset_db (36474)
+ jackson (36474)
+ jaxb (36474)
+ jna (36474)
+ jts (36474)
+ libphonenumber (9.0.31)
+ log4j (36474)
+ mbtiles (v2.8.1)
+ opendata (36474)
+ openqa (116)
+ osmwiki-dataitem (0.0.8)
+ panoramax (8)
+ phonenumber (1.2.0)
+ pmtiles (36474)
+ pt_assistant (682)
+ reverter (36474)
+ todo (159)
+ turnrestrictions (36474)
+ undelete (36474)
+ urbaneye3d (2.2.2)
+ utilsplugin2 (36497)
+ wikipedia (448)

Tagging presets:
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/INT-1-preset.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/Healthcare&zip=1
+ https://<user.name>.com/prezentacije/OpenStreetMap/josm-preset.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/Xmas&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/GuidepostDirectionsAndDestinations&zip=1
+ https://cdn.jsdelivr.net/npm/name-suggestion-index@latest/dist/presets/nsi-josm-presets.min.xml

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransport&zip=1
+ http://bezdomni.net/Styles_HighlightedCapesBays-style.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Styles/ColorWays&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Coloured_Streets&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Modified&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/CyclewaysStylingBNA&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/SidewalksPlus&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/BuildingColors&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/FixmeAndNote&zip=1
+ ${HOME}/tmp/g/1/openaddresses-HR.mapcss

Validator rules:
+ https://josm.openstreetmap.de/josmfile?page=Rules/KeepRight&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/QAToolInspiredValidations&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/OSMLint&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingWeekdays&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/SourceObjectTag&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/IndoorRules&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/Pictures&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingOpeningHours&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/CheckDate&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/FacebookWebsite&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/DuplicateAttributes&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingMain&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/OldCovid&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/NotCheck&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/ThisOrThat&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/ChargeRules&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/InvalidWebsiteProtocol&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/AddrFullWarning&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/AddrRelationWarning&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/CountryCodeCheck&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/Geology&zip=1
+ https://raw.githubusercontent.com/stefan-a-bauer/josm-validators/master/mtb.validator.mapcss
+ https://github.com/Jungle-Bus/transport_mapcss/raw/gh-pages/transport.validator.zip
+ https://github.com/open-energy-transition/validate-my-grid/raw/refs/heads/gh-pages/power.validator.zip
+ https://josm.openstreetmap.de/josmfile?page=Rules/PublicTransportGtfs&zip=1
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/Seamark.validator.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Rules/UnresolvedFIXMEs&zip=1

Last errors/warnings:
- 25003.015 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25020.458 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25310.199 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25313.394 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25352.047 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25394.416 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25540.564 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25779.862 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 25782.502 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 26003.801 E: Handled by bug report queue: java.lang.OutOfMemoryError: GC overhead limit exceeded

Attachments (1)

oom-panoramax.png (1.8 MB ) - added by mnalis 3 weeks ago.
out-of-memory window

Download all attachments as: .zip

Change History (5)

by mnalis, 3 weeks ago

Attachment: oom-panoramax.png added

out-of-memory window

comment:1 by mnalis, 3 weeks ago

Description: modified (diff)

comment:2 by anonymous, 11 days ago

The OOM should be fixed in v10. The fix will make it so that very long sequences are not fully loaded, and thus are not fully visible. The better fix would be to to memory profiling to figure out where the memory is going, but I don't have the time for that anymore.

comment:3 by anonymous, 11 days ago

Resolution: fixed
Status: newclosed

comment:4 by anonymous, 11 days ago

I should note that the sequence in question ( https://api.panoramax.xyz/api/collections/14ea2dff-2d5f-4134-9a9c-0b7ff34d87aa/ ) has 25k items. Which is 250 requests at 100 items/request.

Modify Ticket

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