The number of comments on a post is denormalized, stored as a simple integer attached to the post itself. This is updated when comments are added or deleted, but the update isn't atomic - that is, the count can become inaccurate if two of those actions happen at very nearly the same time:
- deletion #1: retrieve comment count (2 comments)
- deletion #2: retrieve comment count (2 comments)
- deletion #1: delete 1st comment
- deletion #2: delete 2nd comment
- deletion #1: set CommentCount to retrieved count -1 (1 comment)
- deletion #2: set CommentCount to retrieved count -1 (1 comment)
At the end of both deletions in this scenario, both comments on the post are gone... But the CommentCount is still set to 1, because both deletions each thought there was still 1 comment remaining.
This scenario is a bit contrived - the actual logic is slightly less prone to this mistake. But, it can still happen; to correct for this, there's a script that runs daily which counts all comments on all posts and corrects the saved CommentCount for those posts where it is inaccurate. This script last ran slightly more than 15 hours ago; the count on that post became inaccurate about 4 hours ago... So it would've fixed itself in a bit less than 9 hours.
But, there's a quicker fix: just add a comment. Adding a comment re-counts all the comments currently on the post and updates the stored count. I've done this (and then deleted the new comment), thus ensuring that the count is now accurate and no phantom comment is hinted at.