"Todd C. Miller" <[email protected]> writes:
> I can explain that. The page size is being set based on the file
> system block size.
Yes, I just discovered exactly this.
I was looking at the btree.c code and saw:
if (fstat(fd, &sb) == 0)
psize = sb.st_blksize;
else
psize = PAGESIZE;
On my desktop, from dumpfs(8):
bsize 16384 shift 14 mask 0xffffc000
And on the server:
bsize 65536 shift 16 mask 0xffff0000
> Either indx_t needs to be changed to uint32_t or an upper bound
> needs to be placed on psize, perhaps 0x7fff.
>
> I'm not familiar enough with that code to say which is better.
I naively tried changing indx_t to uint32_tthat and got:
May 26 10:44:03.382 [27298] opening namespace dc=example,dc=org
btree_read_header:908: header has invalid magic
Currently, BT_MAGIC is #defined as 0xB3DBB3DB but I don't know what
comprises that value.
I think my short term workaround is going to be a smaller partition
mounted on /var/db/ldap.
Allan