Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#16211 closed defect (fixed)

JOSM required to update plugins to an incompatible version

Reported by: Zverikk Owned by: team
Priority: normal Milestone:
Component: Core Version: tested
Keywords: Cc: ris, floscher

Description

A user in the telegram channel reports:

  • Install some old JOSM-tested (<13000)
  • Install wikipedia plugin
  • Close JOSM
  • Install the last JOSM-tested (13576)
  • Start it and click "update plugins"
  • It says it needs to update wikipedia plugin (why???)
  • It updates the plugin and then says it needs JOSM 13597.

Expected result: fresh JOSM with working wikipedia plugin.

Actual result: wikipedia plugin is disabled because of incompatible version.

I experienced the same, but was too lazy to file a report. But half of plugins are disabled on my macOS because of this.

Attachments (0)

Change History (13)

comment:1 Changed 3 years ago by Zverikk

Maybe it has something to do with #15742.

comment:2 Changed 3 years ago by Don-vip

Cc: ris added

comment:3 Changed 3 years ago by Klumbumbus

Cc: floscher added

comment:4 in reply to:  3 Changed 3 years ago by floscher

Replying to Klumbumbus:

I assume it has to do with these changes:

That was also my first reaction, sorry for any inconvenience caused by that, I was inattentive when making that release.

But in this case it is probably much simpler:
For the wikipedia plugin there is currently no published version that is compatible with the current tested JOSM version. The wikipedia plugin requires JOSM 13597.
It seems that JOSM only falls back to an older plugin version, if the manifest references older versions that are compatible with older JOSM versions.
If there is a downloaded version of a plugin and the version available online is not compatible, JOSM should not update to that newer version.

comment:5 Changed 3 years ago by Klumbumbus

Sorry you're right it shouldn't be related with your changes. I mixed up mapillary and wikipedia.

Last edited 3 years ago by Klumbumbus (previous) (diff)

comment:6 in reply to:  5 ; Changed 3 years ago by floscher

Replying to Klumbumbus:

Sorry you're right it shouldn't be related with your changes. I mixed up mapillary and wikipedia.

No problem, I'll probably soon work also a bit on the wikipedia plugin anyway 😉. Let's see if I can fix the current version to work also with older JOSM versions than 13597…

I just discovered that https://josm.openstreetmap.de/wiki/Plugins still lists the defect version v1.5.11+post13643 for the mapillary plugin, so there is currently also a problem with that (IOException: Stream closed). But I will release a fixed version at the latest tomorrow, so that should be fixed soon.

comment:7 Changed 3 years ago by ris

I've been looking quite heavily at the plugin installation code recently and found a number of parts of it that are somewhat ... confused. Among the failures that are possible is mismatch between the version of a plugin that gets installed and the version that JOSM *thinks* is going to be installed. JOSM fundamentally trusts its plugin list too much and mostly just assumes that whatever it receives from the plugin download URL will be whatever the plugin list says. In particular a plugin's Plugin-Mainversion and Plugin-Canloadatruntime don't get re-checked after the jar is received. So, ignoring any malicious intent, in the 10 minutes between the JOSM mothership's scans of jar urls, users are open to having a plugin that's no longer compatible with their JOSM version happily installed, or perhaps a version of a plugin that's not safe to load at runtime started anyway. Of course if the JOSM mothership's cron job failed for a while or the client was for some reason served a stale version over a period, this would increase the likelihood of such an issue.

I've got a *bit* of a plan of how to handle bits of this better, (parts of it probably controversial), but first I've been trying to get some reasonable test coverage for the area so that I would be able to make changes with more confidence. And in turn I've got diverted into yak shaving trying to make the test infrastructure more capable & reliable.

comment:8 Changed 3 years ago by stoecker

Long long ago JOSM handled version of plugins and the downloads list separately until Gubaer reworked the whole code and mangled everthing. I'd appreciate fixing this and also reintroducing the possibility to have system installed plugins (on UNIX) which cannot be updated directly, but "overwritten" with user local installs.

comment:9 in reply to:  6 Changed 3 years ago by stoecker

Regarding this ticket:

JOSM server does no longer know about old plugin revisions. That's why it only offers the newest one. I don't know the reason for this, but probably one of the "I'm jenkins, I fill you harddisk with crap" cases was the issue. I'll see if I can reconstruct the old plugin table.

I just discovered that https://josm.openstreetmap.de/wiki/Plugins still lists the defect version v1.5.11+post13643 for the mapillary plugin, so there is currently also a problem with that (IOException: Stream closed). But I will release a fixed version at the latest tomorrow, so that should be fixed soon.

I cleared the cache. JOSM server does not download a plugin when the file on the server is older than the local downloaded variant. Thus while links were updated the manifest was read from the local copy and this was still the 1.5.11, as you switched the link back to the older file.

Last edited 3 years ago by stoecker (previous) (diff)

comment:10 Changed 3 years ago by stoecker

Resolution: fixed
Status: newclosed

Old version information reconstructed.

comment:11 Changed 3 years ago by Zverikk

Resolution: fixed
Status: closedreopened

Thank Dirk, but the issue was not about the Mapillary plugin, but more about old versions, like you outlined in comment 9.

comment:12 in reply to:  11 Changed 3 years ago by floscher

Replying to Zverikk:

Thank Dirk, but the issue was not about the Mapillary plugin, but more about old versions, like you outlined in comment 9.

As far as I understand it, Dirk fixed both issues:

  • cleared cache, so the right Mapillary plugin is downloaded
  • reconstructed the list of older plugin versions, so an older version of the wikipedia plugin is chosen

I can now use the wikipedia plugin in version 34109 with JOSM version 13576.

comment:13 Changed 3 years ago by Zverikk

Resolution: fixed
Status: reopenedclosed

Ah, okay, thanks.

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.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.