23

I just reopened this question and immediately (within a few seconds) closed it as a duplicate. However, it seems the reopen 'vote' put it into the Reopen Votes review queue (where I encountered it again and left it closed). This seems an unintended by-product of immediately creating review items after certain actions* (there used to be a delay of 5-15 minutes; it seemed like the system was smart enough to see that the reopener closed the question themselves and review was not necessary). Perhaps creating the review queue item can't be avoided, but at least it should be invalidated after I reclose the question. This probably also applies to gold-tag-badge holders reopening 'old style' duplicates and close them to make them look like contemporary duplicates.

enter image description here

*I'm quite certain this is a recent change and I have seen it announced somewhere, but I'm failing to find a reference. It's quite apparent in the new First Questions and First Answers queues, which on many sites contain fresh posts only seconds old.

2
  • Here's a recent case where this exact thing happened on SO, and was noticed and posted to meta. It's a weird corner case that doesn't appear to have been planned for.
    – zcoop98
    Commented Oct 18, 2021 at 15:19
  • 1
    If the vote reopen reopens the question, the review task shouldn't be created. I would review the close vote code too just in case.
    – Braiam
    Commented Nov 14, 2021 at 16:08

1 Answer 1

4

Finally got the chance to look into this!

Here's what was happening:

When the user votes to reopen a post, if it opens the post outright, it still gets added to the queue - it just gets invalidated 5 minutes or so after through the Sync() method.

In this particular scenario, the Sync() check was failing (er, rather, passing?) because the post was already closed by the time it checked, so Sync() thought that the post should indeed still be in the queue.

I'd thought originally that the method AddToReopenQueue - which was attached to the AddFlagToPost event - would successfully identify if a post was opened based on the vote FIRST, so the Post.IsClosed check would fail and it wouldn't get added. ...I was wrong.

To fix it, we moved the AddToReopenQueue method call to inside the AddFlagForReopen method, so that we only try to add to the queue if the flag doesn't reopen the post. This should fix both this scenario, and also fix the instances in which a post gets added to the queue and then invalidated right away.

Thanks for reporting, the fix is in review right now and should be shipped within the next few days.

You must log in to answer this question.

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