This is an archive of the discontinued Mercurial Phabricator instance.

corruption: backout changeset 49fd21f32695 (issue6528)
ClosedPublic

Authored by marmoute on Jul 6 2021, 10:40 AM.

Details

Summary

inverting the parent is masking copy information leading to bad content being
fetched and bad status result.

Since 49fd21f32695, exchange can actively swap these parent corrupting existing
changesets and triggering the corruption.

Data corruption are considered critical so backing this out and doing and
unscheduled release seems in order.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

marmoute created this revision.Jul 6 2021, 10:40 AM
baymax updated this revision to Diff 28886.Jul 6 2021, 2:49 PM

✅ refresh by Heptapod after a successful CI run (🐙 💚)
⚠ This patch is intended for stable ⚠

Just the revert as is introduces other regressions. At the very least, we should preserve the sorting for changelog and keep the original order for filelog. The other part is that the filelog logic here is actively broken even before, so this doesn't fix the logic, just makes it less visibly broken.

Just the revert as is introduces other regressions.

Can you clarify what these regressions are ? The backout does not breaks any tests, do you have tests in your sleeve for these regression ?

At the very least, we should preserve the sorting for changelog and keep the original order for filelog.

Is there another changeset to backout to get this ?

What does this order preserving achieve and why is this necessary ?

The other part is that the filelog logic here is actively broken even before, so this doesn't fix the logic, just makes it less visibly broken.

What kind of brokenness are we talking about here ? What broken behavior does this trigger and what are the scenario for triggering them ?

This revision was not accepted when it landed; it landed in state Needs Review.
This revision was automatically updated to reflect the committed changes.