6

About a year ago, a feature request to Restrict the delete/undelete vote privilege to once per post was implemented network-wide.

However, this restriction doesn't always apply. For example, the timeline for this question on Meta Stack Overflow shows 2 deletion events, 1 and 2, with the same user voting to delete twice. (Needs 10K on Stack Overflow to view. I'm not posting screenshots because the identity of the delete voters is not relevant here).

As it turns out, the check only looks for an existing delete vote that occurred after the question was closed. This means that a successful reopen and close cycle lets all users who previously voted to delete do so again, making the implemented restriction useless in certain situations.

I assume this is a bug, as an exemption is not mentioned in the original feature request (or the staff answer to that request), there are no posts here on Meta Stack Exchange indicating this was changed, and I can't think of any reason why there would be such an exemption. Could this be fixed please?

9
  • 1
    Interesting bug. Worth mentioning in case it isn't apparent: The restriction still works as intended here on Meta Stack Exchange. That may be because it more or less operates as a main site.
    – Spevacus
    Commented Aug 21, 2022 at 0:35
  • 1
    @Spevacus Ok. I kind of assumed that, but couldn't find any evidence of it working (or not working). Thanks for the confirmation.
    – cigien
    Commented Aug 21, 2022 at 1:02
  • 1
    I don't see any evidence of this working differently on meta vs non-meta sites. It seems that the way it is implemented only checks for a delete vote after the most recent closure, so the fact that it was reopened and closed again made the user eligible again. Don't know if that was intentional, that criteria doesn't appear mentioned anywhere.
    – animuson StaffMod
    Commented Aug 21, 2022 at 1:56
  • @animuson Oh, that's very interesting. I'm pretty sure the restriction asked for in the original feature request was intended to be independent of intervening closures/reopens. This sounds like a bug to me.
    – cigien
    Commented Aug 21, 2022 at 2:00
  • @animuson I agree with cigien here. Quite often, people who want to undelete a post also want to reopen it. So, there's a pretty high possibility of a post getting reopened shortly after it's undeleted, which would invalidate the restriction.
    – 41686d6564
    Commented Aug 21, 2022 at 3:42
  • 1
    I'm honestly not sure where the restriction came from. The original commit does not include the check, but the next commit for releasing the feature includes a check looking only for a delete vote that occurred after the close date. I can't find any discussion for why the change occurred, despite it appearing to be an intentional addition (there's even a code comment calling it out as the way it should work). shrugs I'm gonna status-review this because it's weird and not how we announced it.
    – animuson StaffMod
    Commented Aug 21, 2022 at 3:47
  • 3
    @animuson When a question is reopened, all the active delete-votes are cleared. I assume the intent of the change was to allow users who had delete-voted, but not had that delete-vote actually participate in a deletion, be permitted to re-apply their delete-vote once the question was re-eligible for delete-votes. Ideally, the check, for all of delete-votes, undelete-votes, close-votes, and reopen-votes would be that the user may not re-vote if they have a previous similar vote on that post where that vote participated in changing the state of the post (excluding moderators and the post owner).
    – Makyen
    Commented Aug 21, 2022 at 4:16
  • 1
    @animuson The change was introduced in response to this Mathematics Meta request. It is an intentional behavior, not a bug. Commented Aug 21, 2022 at 5:44
  • 4
    @Sonic Except the explanation there is not consistent with the actual behavior. It explicitly says reopened and closed without a deletion event. Which is in line with Makyen's description of wanting to allow re-casting a vote if it wasn't successful. The current logic does cover that case, but also allows a case that should be forbidden because it's incorrect logic.
    – animuson StaffMod
    Commented Aug 21, 2022 at 5:48

1 Answer 1

4

I assume this is a bug, as an exemption is not mentioned in the original feature-request (or the staff answer to that request)

The reason this is not mentioned in the original request or its staff answer is because it was added a few months later and the original posts weren't edited to reflect the change.

and I can't think of any reason why there would be such an exemption.

As the above linked request on Mathematics Meta states, there is one good reason why this exemption exists. Essentially, when a question is reopened, any pending delete votes on it are cleared. This change was to allow users whose votes were cleared as a result of the question being reopened the ability to vote to delete again.

I believe the exemption as designed should stay, because:

  • Such votes do not contribute to the delete/undelete wars the rule was designed to prevent, as they don't result in the post getting deleted.
  • A similar exemption currently exists for close and reopen votes; they can be recast later on if they get cleared (as a result of aging; there is a waiting period of 14 days before being able to do so).
  • In the current system, 3-5 reopen voters with only 3k+ reputation can override the opinions of three (or more) 10k+ users voting to delete. Just because the question was reopened doesn't necessarily mean that the prior votes to delete are invalid; if the question later gets closed again, those earlier delete voters should be allowed to recast their votes. (The current system of clearing delete votes should be retained, as the reopening may have been as a result of resolving the issues that caused it to be eligible to be closed and deleted, and prior voters should be required to affirm that their prior votes are still correct.)

However, as you noted, the current system configuration deviates from the design, it's possible for voters to vote again even if their prior vote resulted in deletion, and the question was undeleted, reopened, and closed again (or, more rarely, reopened while deleted and then undeleted and closed again).

As animuson mentions in the comments, this is likely because when checking if a user can vote to delete, it goes into the user's history to check to see if there's no delete vote they cast since the last reopening event. The issue can be fixed by using the same check as is done to check for repeated close and reopen votes: check the post's history for a prior successful deletion event with the user attributed. This would make it conform to the design rather than deviate from it as above.

However, I think that such cases are sufficiently rare and the check may be technically easier to implement the way it currently is, that the team decided to do it that way rather than my proposed way above. Back before any sort of restrictions were introduced, there were only 133 posts that were voted to delete more than once by the same user across the entire network, of which only 12 were voted to delete three or more times by the same user. Since the instances of this behavior were already very rare prior to the October changes, I think the team may have deemed it OK to leave a very tiny loophole that would be even more rarely used.

However, the team shouldn't revert the later change made in January in whole, per the reasons I pointed out. Either my proposed fix should be implemented, or the system should stay as is.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .