Modify

Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#21237 closed defect (fixed)

"JosmRuntimeException: failed to remove primitive" in Mapillary plugin

Reported by: anonymous Owned by: anonymous
Priority: normal Milestone:
Component: Plugin mapillary Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. With a data layer loaded, enable the Mapillary plugin.
  2. Pan around.

What is the expected result?

It just works.

What happens instead?

Occasionally a crash is reported, JOSM still continues to work normally after that.

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

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-08-02 19:44:04 +0200 (Mon, 02 Aug 2021)
Revision:18118
Build-Date:2021-08-02 18:26:20
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18118 en) Linux Ubuntu 20.04.3 LTS
Memory Usage: 987 MB / 3978 MB (132 MB allocated, but free)
Java version: 11.0.11+9-Ubuntu-0ubuntu2.20.04, Ubuntu, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1600×900 (scaling 1.00×1.00) :0.1 1600×900 (scaling 1.00×1.00)
Maximum Screen Size: 1600×900
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: MATE
Java package: openjdk-11-jre:amd64-11.0.11+9-0ubuntu2~20.04
Java ATK Wrapper package: libatk-wrapper-java:all-0.37.1-1
libcommons-compress-java: libcommons-compress-java:all-1.19-1
libcommons-logging-java: libcommons-logging-java:all-1.2-2
fonts-noto: fonts-noto:all-20200323-1build1~ubuntu20.04.1
VM arguments: [--add-modules=java.scripting,java.sql, -Djosm.restart=true, -Djava.net.useSystemProxies=true]
Dataset consistency test: No problems found

Plugins:
+ DirectUpload (35640)
+ InfoMode (35543)
+ KartaView (374)
+ Mapillary (2.0.0-alpha.31-dirty)
+ PicLayer (1.0.1)
+ SimplifyArea (35640)
+ apache-commons (35524)
+ apache-http (35589)
+ cadastre-fr (35797)
+ ejml (35458)
+ geotools (35458)
+ javafx-unixoid (35655)
+ jna (35662)
+ jts (35458)
+ measurement (35640)
+ merge-overlap (35640)
+ photo_geotagging (35783)
+ print (35640)
+ reverter (35732)
+ todo (30306)
+ turnrestrictions (35640)
+ undelete (35640)
+ utilsplugin2 (35792)

Last errors/warnings:
- 00934.447 E: Unknown detection "object--sign--back"
- 00934.619 E: Unknown detection "construction--barrier--road-side"
- 00934.620 E: Unknown detection "construction--barrier--road-side"
- 00934.621 E: Unknown detection "construction--barrier--road-side"
- 00934.622 E: Unknown detection "construction--barrier--road-side"
- 00934.623 E: Unknown detection "construction--barrier--road-side"
- 00934.624 E: Unknown detection "construction--barrier--road-side"
- 00934.624 E: Unknown detection "construction--barrier--road-side"
- 00934.750 E: Unknown detection "object--sign--back"
- 13202.932 E: Handled by bug report queue: org.openstreetmap.josm.tools.JosmRuntimeException: failed to remove primitive: org.openstreetmap.josm.data.vector.VectorNode@1557952c



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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: MVT-downloader-20 (233)
org.openstreetmap.josm.tools.JosmRuntimeException: failed to remove primitive: org.openstreetmap.josm.data.vector.VectorNode@1557952c
	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$2(MapillaryVectorTileWorkarounds.java:70)
	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:61)
	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:829)

Attachments (0)

Change History (9)

comment:1 by Don-vip, 4 years ago

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

comment:2 by Don-vip, 4 years ago

Summary: Crash in Mapillary plugin"JosmRuntimeException: failed to remove primitive" in Mapillary plugin

comment:3 by taylor.smock, 4 years ago

I hate this bug -- I have a hard time reproducing. In the past, I've synchronized the areas where I expect there to be race conditions. I have also moved the problem code around in my current working branch.

Mapillary doesn't give us unique ids per vector tile feature per layer, and the problem code is trying to work around that (I've got to set the primitive id, remove the primitive from the dataset, and the add the primitive to the dataset). I'll try to make a release today, and hope that it is fixed.

comment:4 by taylor.smock, 4 years ago

Owner: changed from taylor.smock to anonymous
Status: newneedinfo

@anonymous: Let me know if this occurs again. I've released an updated version of the plugin.

Last edited 4 years ago by taylor.smock (previous) (diff)

comment:5 by Don-vip, 4 years ago

Resolution: fixed
Status: needinfoclosed

Anonymous people rarely reply, let's say it's fixed.

comment:6 by taylor.smock, 4 years ago

I know. But I was hoping that they would check it again. I was going to close it in a week if they didn't reply.

comment:7 by Don-vip, 4 years ago

I lost this hope long ago :)

comment:8 by taylor.smock, 4 years ago

JOSM: A Lost Hope...

Anyway, I wish people at least put an email in the reported by field. I know it is already encouraged (In any case, don't be shy :) Please let us a way to contact you if needed (either by creating an account or entering your e-mail address below (it won't be publicly visible but will allow us to reach you, and you will be notified about ticket progress).)

I kind of wish the "Create ticket" button changed based off of the input from the email/user name field. (if anonymous; then show "Create ticket (I hope the ticket has all the information, otherwise it will be closed)"; else show "Create ticket").

Or maybe a flashing banner? But that is a discussion for another ticket...

comment:9 by Don-vip, 4 years ago

The "always include status report" of the banner is also too often ignored. I don't think a flashing banner will change that, it will instead make people afraid of flashing things like me leave the website ASAP ;)

Modify Ticket

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