Modify

Opened 2 years ago

Last modified 21 months ago

#6185 new defect

Validator extremely slow if duplicates are selected

Reported by: bilbo Owned by: team
Priority: normal Component: Core validator
Version: Keywords:
Cc:

Description

How to reproduce:

1) Load attached file

2) Press "Validate"

3a) Single click "Errors/Duplicated ways (8796)" (so nothing will be selected)

4a) press "Fix" -> all duplicated ways gets fixed fast (like 5 seconds)

Now close the file and load and validate it again - repeat steps 1) and 2)

3b) Double click "Errors/Duplicated ways (8796)" (so all duplicated ways will be selected)

4b) press "Fix" -> Fixing will take ages (many minutes, possibly more than hour by guessing from the rate on the progressbar)

This happens with other validation types too (like fixing untagged unconnected nodes), though the result between "Selected" and "unselected" case is not so big (for untagged and unconnected nodes it is "only" about 2 times slower).

It seems that UndoRedoHandler.addNoRedraw in the second case somehow causes some events to be fired when the affected ways are selected (in profiler I saw lot of time spent in DatasetEventManager$1.run(), DatasetEventManager.fireEvents() and DatasetEventManager.fireConsolidatedEvents()) and way too much CPU time is spent in that cases.

Attachments (1)

many_dupes_slow_bug.osm.bz2 (400.2 KB) - added by bilbo 2 years ago.
Test case (actually older version of real OSM data) demonstrating the bug

Download all attachments as: .zip

Change History (2)

Changed 2 years ago by bilbo

Test case (actually older version of real OSM data) demonstrating the bug

comment:1 Changed 21 months ago by simon04

  • Component changed from Core to Core validator

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as new .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team. Next status will be 'new'.
Next status will be 'needinfo'.The owner will change to bilbo
as duplicate The resolution will be set to duplicate. Next status will be 'closed'.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous. Next status will be 'assigned'.
Author


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

 
Note: See TracTickets for help on using tickets.