Modify

Opened 3 years ago

Closed 3 years ago

#21178 closed defect (fixed)

Mapillary: failed to remove primitive: VectorNode in MapillaryVectorTileWorkarounds

Reported by: messinian Owned by: taylor.smock
Priority: normal Milestone:
Component: Plugin mapillary Version: latest
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. was viewing Mapillary images along a trace to determine how closely aligned images are with basemap image (NYS Ortho)
  2. Trying to get more info on the data so opened "OpenStreetMap obj info" window" Clicking any of the icons did not give me info (not sure if it even should, I'm a newbie.
  3. got an error message

What is the expected result?

What happens instead?

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

Sorry, I'm not really sure what happened or how to repeat it.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-07-12 02:41:41 +0200 (Mon, 12 Jul 2021)
Revision:18004
Build-Date:2021-07-12 00:42:49
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18004 en) Windows 10 64-Bit
OS Build number: Windows 10 Home 2009 (19042)
Memory Usage: 1494 MB / 4046 MB (161 MB allocated, but free)
Java version: 11.0.10+9, AdoptOpenJDK, OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 3840×2160 (scaling 2.50×2.50)
Maximum Screen Size: 3840×2160
Best cursor sizes: 16×16→64×64, 32×32→64×64
System property file.encoding: Cp1252
System property sun.jnu.encoding: Cp1252
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Dicedtea-web.bin.location=C:\Program Files\OpenWebStart\javaws, -Djava.util.Arrays.useLegacyMergeSort=true, --add-exports=jdk.deploy/com.sun.deploy.config=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-reads=java.naming=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.action=ALL-UNNAMED,java.desktop, --add-reads=java.base=ALL-UNNAMED,java.desktop, --add-exports=java.naming/com.sun.jndi.toolkit.url=ALL-UNNAMED,java.desktop, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/sun.awt=ALL-UNNAMED,java.desktop, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-exports=java.base/sun.security.validator=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/jdk.internal.util.jar=ALL-UNNAMED,java.desktop, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, --add-exports=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED,java.desktop, --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED, --add-modules=java.scripting,java.sql, --add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.applet=ALL-UNNAMED,java.desktop,jdk.jsobject, --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED,java.desktop, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-exports=java.base/sun.security.util=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-reads=java.desktop=ALL-UNNAMED,java.naming, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-exports=java.base/sun.security.x509=ALL-UNNAMED,java.desktop, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-exports=java.desktop/javax.jnlp=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.provider=ALL-UNNAMED,java.desktop]
Dataset consistency test: No problems found

Plugins:
+ ElevationProfile (35640)
+ ImportImagePlugin (35567)
+ ImproveWay (32)
+ InfoMode (35543)
+ MakeParallel (v1.1.0)
+ Mapillary (2.0.0-alpha.29-dirty)
+ MicrosoftStreetside (35779)
+ apache-commons (35524)
+ apache-http (35589)
+ buildings_tools (35756)
+ changeset-viewer (25)
+ ejml (35458)
+ geochat (35640)
+ geotools (35458)
+ imagery_offset_db (35640)
+ javafx-windows (35655)
+ jaxb (35543)
+ jna (35662)
+ jts (35458)
+ log4j (35458)
+ opendata (35640)
+ openvisible (35640)
+ osm-obj-info (66)
+ splinex (35718)
+ utilsplugin2 (35792)

Last errors/warnings:
- 00000.274 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.276 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 00007.202 W: java.nio.file.FileSystemException: %UserProfile%\AppData\Local\Temp\josm_exec_powershell_8554583551334398896.txt: The process cannot access the file because it is being used by another process.
- 00007.204 W: Unable to request certificate of https://roottest-g3.pkioverheid.nl
- 00012.257 W: java.nio.file.FileSystemException: %UserProfile%\AppData\Local\Temp\josm_exec_powershell_14425925932967569151.txt: The process cannot access the file because it is being used by another process.
- 00012.258 W: Unable to request certificate of https://roottest-g3.pkioverheid.nl
- 01735.200 E: java.io.FileNotFoundException: %UserProfile%\Documents\test (The system cannot find the file specified)
- 03889.325 E: Handled by bug report queue: org.openstreetmap.josm.tools.JosmRuntimeException: failed to remove primitive: org.openstreetmap.josm.data.vector.VectorNode@4557d88



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: MVT-downloader-19 (300)
org.openstreetmap.josm.tools.JosmRuntimeException: failed to remove primitive: org.openstreetmap.josm.data.vector.VectorNode@4557d88
	at org.openstreetmap.josm.data.osm.QuadBucketPrimitiveStore.removePrimitive(QuadBucketPrimitiveStore.java:128)
	at org.openstreetmap.josm.data.vector.DataStore$LocalQuadBucketPrimitiveStore.removePrimitive(DataStore.java:42)
	at org.openstreetmap.josm.data.vector.DataStore.removePrimitive(DataStore.java:96)
	at org.openstreetmap.josm.data.vector.VectorDataSet.removePrimitive(VectorDataSet.java:156)
	at org.openstreetmap.josm.plugins.mapillary.gui.layer.MapillaryVectorTileWorkarounds.lambda$setNodeIds$1(MapillaryVectorTileWorkarounds.java:64)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.openstreetmap.josm.plugins.mapillary.gui.layer.MapillaryVectorTileWorkarounds.setNodeIds(MapillaryVectorTileWorkarounds.java:58)
	at org.openstreetmap.josm.plugins.mapillary.gui.layer.MapillaryLayer.finishedLoading(MapillaryLayer.java:757)
	at org.openstreetmap.josm.data.imagery.vectortile.mapbox.MVTTile.lambda$loadImage$1(MVTTile.java:73)
	at org.openstreetmap.josm.tools.ListenerList.fireEvent(ListenerList.java:162)
	at org.openstreetmap.josm.data.imagery.vectortile.mapbox.MVTTile.loadImage(MVTTile.java:73)
	at org.openstreetmap.josm.data.imagery.TMSCachedTileLoaderJob.tryLoadTileImage(TMSCachedTileLoaderJob.java:328)
	at org.openstreetmap.josm.data.imagery.TMSCachedTileLoaderJob.loadingFinished(TMSCachedTileLoaderJob.java:210)
	at org.openstreetmap.josm.data.cache.JCSCachedTileLoaderJob.finishLoading(JCSCachedTileLoaderJob.java:265)
	at org.openstreetmap.josm.data.cache.JCSCachedTileLoaderJob.run(JCSCachedTileLoaderJob.java:234)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

Attachments (0)

Change History (3)

comment:1 by messinian, 3 years ago

Sorry, very new to software, not sure what I was actually doing when the error popped up. Seems to have something to do with the Mapillary plugin.

comment:2 by Klumbumbus, 3 years ago

Component: CorePlugin mapillary
Owner: changed from team to taylor.smock

comment:3 by taylor.smock, 3 years ago

Resolution: fixed
Status: newclosed
Summary: cluelessMapillary: failed to remove primitive: VectorNode in MapillaryVectorTileWorkarounds

I thought I fixed this. It is, unfortunately, a "race" problem, so it is difficult to reproduce reliably for unit tests.

What probably is happening is the following:

  • A thread checks that the DataSet contains the VectorNode
    • Another thread does the same thing, but just before the next step
  • The first thread removes the VectorNode from the DataSet
    • The second thread then tries to do the same thing

Anyway, I've added code to synchronize on the VectorNode object, so it hopefully doesn't happen again.

See 2af1c7507fa5acd81a89428fbe48ea843e26aa86. I will make a release with that fix in the next hour or two (as soon as the CI finishes running for it).

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.