-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Normal
-
Affects Version/s: None
-
Component/s: Edit system
-
None
When marking someone as a spammer, we cancel their open edits and votes. This is supposed to happen in the opposite order as they were entered, "to make sure no conflicts happen that make some cancelling fail and all entities that should be autoremoved do get removed" - which makes a lot of sense. The problem is, as I just found out, doing this by sorting by open_time as we currently do does not consistently work - edits 118415049 (adding a spam series) and 118415050 (adding a spam url to such series) have the exact same open time since they were opened as a set. The process tries to cancel the series before the URL, and it fails since the series is still in use for the relationship - causing an ISE and making it impossible to even mark the user as spam to begin with.
The solution would seem to be to just sort on edit ID, which should be a clear indicator of edit age, but to play it safe, we could sort on time then id.