This is an archive of the discontinued Mercurial Phabricator instance.

revlog: demonstrate a bug where transaction can be aborted partially
ClosedPublic

Authored by aalekseyev on Jan 20 2022, 9:09 AM.

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

aalekseyev created this revision.Jan 20 2022, 9:09 AM

This demonstrates a bug that results in a repo corruption any time a transaction is aborted that adds multiple revs of the same revlog while growing it beyond 128KiB.
I would have thought this affects most hg users, since none of the pre-conditions for this bug is very unique.
Probably this went unnoticed for such a long time simply because transactions are rarely aborted.

Alphare accepted this revision.Jan 20 2022, 9:18 AM
This revision is now accepted and ready to land.Jan 20 2022, 9:18 AM