[PATCH 4 of 4] mmapindex: set default to 1MB

Boris FELD boris.feld at octobus.net
Wed Jan 2 22:40:11 UTC 2019


On 04/12/2018 12:09, Yuya Nishihara wrote:
> On Sun, 02 Dec 2018 17:17:43 +0100, Boris Feld wrote:
>> # HG changeset patch
>> # User Boris Feld <boris.feld at octobus.net>
>> # Date 1542949784 -3600
>> #      Fri Nov 23 06:09:44 2018 +0100
>> # Node ID 9708243274585f9544c70925eb0b0fa0ec7aba4f
>> # Parent  0fff68dfbe48d87dce8b8736c0347ed5aa79030e
>> # EXP-Topic mmap
>> # Available At https://bitbucket.org/octobus/mercurial-devel/
>> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 970824327458
>> mmapindex: set default to 1MB
> Can you check if strip/rollback properly copy the revlog before truncating it?
>
> If a mmapped revlog is truncated by another process, the mapped memory could be
> invalid. The worst case, the process would be killed by SIGBUS.

Hum good catch, process reading a repository being stripped have always
been up for troubles. However, mmap makes it worse by raising a signal
instead of just having wonky seek. It also introduces new cases where
this can happen.

What shall we do here, I guess our best bet is to intercept these SIGBUS
when reading revlog index?

> _______________________________________________
> 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