Buffindexed page size limited?

Russ Allbery eagle at eyrie.org
Sat Dec 30 00:55:37 UTC 2017


Julien ÉLIE <julien at trigofacile.com> writes:

> On Fedora 18 ppc64, the overview/api.t test fails with:

> # buffindexed
> buffindexed: OV_HDR_PAGESIZE (16384) is not a multiple of pagesize (65536)
> Opening the overview database failed, cannot continue


> In storage/buffindexed/buffindexed.c:

> #define OV_HDR_PAGESIZE 16384

> if ((pagesize > OV_HDR_PAGESIZE) || (OV_HDR_PAGESIZE % pagesize)) {
>       warn("buffindexed: OV_HDR_PAGESIZE (%d) is not a multiple of pagesize (%ld)", OV_HDR_PAGESIZE, pagesize);
>       return false;
> }

> and config.h has:

> /* Define to 1 if you have the `getpagesize' function. */
> #define HAVE_GETPAGESIZE 1


> So I wonder whether there is a reason for having set OV_HDR_PAGESIZE
> to 16384 in the buffindexed source code.
> Couldn't we just set OV_HDR_PAGESIZE to pagesize if pagesize > 16384?
> This way, it would still work as it used to for existing working systems,
> and it would also work for systems having pagesize > 16384.

Very belatedly (more than four years later), I took a look at this and
concur with this evaluation.  I moved the code around a bit to adapt the
page size to the the local system page size, hopefully in a way that works
properly.

-- 
Russ Allbery (eagle at eyrie.org)              <http://www.eyrie.org/~eagle/>


More information about the inn-workers mailing list