bogofilter 1.3.0.rc2 now available, release candidate (fixes LMDB 1.0.0 database support)
Matthias Andree
matthias.andree at gmx.de
Fri Jul 10 19:31:17 CEST 2026
Am 10.07.26 um 16:37 schrieb Steffen Nurpmeso:
> Matthias Andree via bogofilter-announce wrote in
> <alDUSFaaK7v7PK48 at ryzen.an3e.de>:
> |bogofilter 1.3.0.rc2 is now available from
> ...
> |This fixes LMDB 1.0.0 compatibility (1.3.0.rc1 and older won't
> |read or write anything with LMDB 1.0.0 because they believe the maximum
> |key size were 0 - arguably an LMDB 1.0.0 documentation bug and breaking
> |API change, but easily fixed for us),
> ...
>
> Sorry for this again, i have opened
>
> https://bugs.openldap.org/show_bug.cgi?id=10534
Thanks for reporting the documentation defect upstream and sharing the link.
> ...
> |WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
> |------------------------------------------------------------------------
> |POTENTIAL FOR DATA CORRUPTION DURING UPDATES
> ...
>
> But to note that you possibly want to wait, i saw Howard Chu
> speaking on postfix-devel, even though on something different, he
> release[sd] 1.0.1
>
> https://marc.info/?t=178363071700003&r=1&w=2
Thanks, but that's fixing a different regression, one which did not
affect bogofilter:
We're not programmatically dropping databases to repopulate them
atomically inside the transaction.
Apparently the LMDB database has a limited test set outside OpenLDAP...
For bogofilter: It was important to get the fix out, hence we have
1.3.0.rc2.
> ...
> | 2026-07-02
> | * Add support for breaking changes in LMDB 1.0.0. bogofilter's
> | LMDB driver in 1.3.0.rc1 and older would reject all database
> | transactions because it believed database lookup keys were too
> | large. Cause is an undocumented API change where we can only
> | query the maximum key size after OPENING a database environment,
> | not, as documented in 1.0.0 and 0.9.X before, after already
> | creating it.
> ...
>
> And i think it was always like that, but falsely documented.
> It just never sprang into existence bevcause of how LMDB was used
> i would think. Sorry for this again.
To me it seems the bug is new, else we'd have known, and it was clearly
the keysize query that returned 0.
We've had reports of self-tests breaking with LMDB 1.0.0 on FreeBSD
ports' package builders and Xin Li who oversees the FreeBSD port of LMDB
moved all ports back to LMDB 0.9 for now so they can upgrade to LMDB 1.0
on their own schedule. FreeBSD has bogofilter (based on LMDB 0.9) and
bogofilter-lmdb1 (1.0) ports.
The KyotoCabinet database 1.2.80 (1.2.80_1 on FreeBSD) triggers three
compiler complaints that suggest that the header file is ill-formed and
can only be compiled with language standards before and excluding C23.
It's rather simple to fix though, int foo() needs to be int foo(void)
in C23 if you mean "no arguments" rather than "give me as many as you
like". TokyoCabinet headers compile inconspicuously...
> Great we get a bogofilter update!!
:-)
More information about the bogofilter-dev
mailing list