I've fixed a section editing bug that was corrupting the saving of the
previous revision to the old table when used by an anonymous user.
The code in updateArticle() called getContent() to get the page text to
do its section munging on. But, that function grabs the data through
loadContent(), which doesn't load the fields for cur_user_text,
cur_is_minor, or cur_comment (as these are not used when displaying a
rendered article); the later call to loadLastEdit() sees that data has
been loaded (as the data for cur_user _was_ loaded... but that isn't
used for page display either, is it?) and doesn't fill out the rest of
the data.
Thus when we save the last edit's data back to old, it's missing those
fields. (If still in recentchanges, the comment and minor status can be
recovered; user name can be recovered from user id for logged-in users,
but if any anon edits were corrupted that fell off the recentchanges
table, they may not be recoverable unless they happen to have been
caught in a backup.)
Now, this bug is kinda hidden because a logged-in user causes an earlier
call to loadLastEdit() to allow for overriding the edit conflict check
if the last edit was by the present user, and the only section editing
allowed to anons is 'post comment', which is used fairly rarely so far.
Argggh... I moved the call up earlier so all data is loaded, but the
functions should probably be changed to not stomp on each other badly.
The emergency fix is applied to dev and stable branches and installed on
the servers.
-- brion vibber (brion @
pobox.com)