7

The last revision shown in a post's revision history is the current revision, but I have encountered a situation where an edit conflict can cause the displayed text of a post to differ from it.

I edited this question from the LQP review queue, but realized I had missed some things in the edit, so I opened up the page and clicked edit to re-edit it. This was well within the 5 minute editing window, so if no one else had edited the post before I submitted the re-edit, then it would have been correct for the system to have shown both my edits as a single revision. However, that's not quite what happened.

As I was re-editing the post, just as I was clicking the button to submit the edit, the bar about how someone else had edited the post came up. After I submitted my edit, I checked the post and the revision history to see if I needed to merge any changes in from that other edit. That's when I saw something weird: both the revision history and the post timeline show the other user's edit (edit #3) as the most recent edit, but my edit is what the post actually shows.

This is to say that what the question page shows as the post body is different text from the text of what is currently listed as the most recent revision. In case the post is edited again, destroying the publicly viewable evidence of the bug, I've archived the page in the Wayback Machine. The other editor, Zanna, is shown on the question page as the most recent editor--which agrees with the revision history page--but the text on the question page that it (in effect) attributes to her is actually from my edit, which the revision history claims happened earlier.

Since this is sort of confusing, I should probably say what behavior I actually expect and would consider correct in this situation. The bug here is that the revision history disagrees with the question page--the latest revision is not the same text as is shown on that page. Any specific way a conflict in this situation could be resolved that abides by that would be basically fine. However, the specific results I expected to see was for either (a) my re-edit to be recorded as revision #4, effectively rolling back Zanna's edit that occurred while I was editing, or (b) my re-edit to not be applied at all.

This is what Zanna, the other editor, observed:

After I edited, the grey bar popped up saying "an edit has been made to this post" I clicked it and saw your revision, but my picture still there

I don't know whether my original edit having been from a review queue contributed to the observed behavior or not. This bug resembles Bugged simultaneous edit but I don't know if they're really the same bug. (Even if it's irrelevant that my edit originated from a review queue--as I guess it may be--I'm still not sure.)

1 Answer 1

4

No fix, just a few notes here for the future:

There are a few possible race conditions when editing, as the process of submitting an edit has several stages:

  1. Validate the edit, ensuring that it's legal to save - includes determining whether or not the edit will create a new revision or roll into an existing one.
  2. Actually create the new revision or update the existing one (note that even in the "update" case, new records may be inserted if, for example, the edit touches the title but the existing revision was strictly a body edit).
  3. "Rebake" the post, transforming the new / updated revision into the HTML that will be rendered on the question page.

So when two edits are submitted simultaneously (or very close in time), there are multiple opportunities for weirdness, as one or both may complete step #1 before getting to #s 2 & 3.

What ends up displayed is determined by whatever edit's "step 3" finishes last. What ends up as the latest revision is usually, but not always, the same. In your case, your edit got rolled into an earlier revision but was also the last edit to finish processing... So we get this weird effect where your edit is shown, but anyone trying to edit it will see something different.

The work-around here is... To roll back the post to your edit (or edit it, adding in anything useful from the later revision).

See also: Question showing an older revision, but when editing the latest revision is shown

You must log in to answer this question.

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