[PATCH STABLE] revlog: make sure we never use sparserevlog without general delta (issue6056)

Boris FELD boris.feld at octobus.net
Thu Jan 31 10:12:25 EST 2019


On 30/01/2019 17:43, Yuya Nishihara wrote:
> On Wed, 30 Jan 2019 14:18:29 -0500, Boris FELD wrote:
>> On 29/01/2019 07:11, Yuya Nishihara wrote:
>>> On Tue, 29 Jan 2019 09:25:34 +0100, Mathias De Maré wrote:
>>>> On Mon, Jan 28, 2019 at 1:21 PM Yuya Nishihara <yuya at tcha.org> wrote:
>>>>> On Fri, 25 Jan 2019 15:00:52 -0500, Boris Feld wrote:
>>>>>> # HG changeset patch
>>>>>> # User Boris Feld <boris.feld at octobus.net>
>>>>>> # Date 1548372167 18000
>>>>>> #      Thu Jan 24 18:22:47 2019 -0500
>>>>>> # Branch stable
>>>>>> # Node ID c7661fdcaeac457aa5b8ae6b6a10b259713934b9
>>>>>> # Parent  26ee61c33dee366576a0f7266fea9834985e78ec
>>>>>> # EXP-Topic issue6056
>>>>>> # Available At https://bitbucket.org/octobus/mercurial-devel/
>>>>>> #              hg pull https://bitbucket.org/octobus/mercurial-devel/
>>>>> -r c7661fdcaeac
>>>>>> revlog: make sure we never use sparserevlog without general delta
>>>>> (issue6056)
>>>>>> We are getting user report where the delta code tries to use
>>>>> `sparse-revlog`
>>>>>> logic on repository where `generaldelta` is disabled. This can't work so
>>>>> we
>>>>>> ensure the two booleans have a consistent value.
>>>>>>
>>>>>> Creating this kind of repository is not expected to be possible and we
>>>>> weren't
>>>>>> able to create one for testing purpose. But if users run into this, we
>>>>> better
>>>>>> put stronger protection.
>>>>> Mathias, do you have any idea how the broken repository could be created?
>>>>>
>>>> I think the issue might be related to our use of streaming clonebundles and
>>>> a mismatch between some repositories on our server.
>>>> For one specific repository, I see on the server that .hg/requires contains
>>>> "revlogv1 store fncache dotencode".
>>>> On the client that cloned (and cannot commit), the requires contains:
>>>> "dotencode fncache generaldelta revlogv1 sparserevlog store"
>>> That makes sense, thanks.
>>>
>>> The problem could be reproduced by adding --config format.usegeneraldelta=0
>>> --config format.sparse-revlog=0 to test-clonebundles.t.
>> Where are you adding this? We could not reproduce on our side.
> Added it to "hg init server", and some repository mutation to clones.
Do you have an exact patch to share? Adding it to `init` only was not
enough.
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list