INN 2.7.4rc1
Pre-release2026-06-13
Full changes and diff from previous release
New Features
-
The speed of expireover has been greatly improved by the implementation of a Bloom filter (a probabilistic data structure used to efficiently test whether an element is a member of a set, without any false negative). Instead of checking every article in the overview database against the history file to detect orphaned entries, expireover now sequentially reads the history file at startup to build a Bloom filter, and makes its checks in that optimized data structure. On large news spools of billions of articles, expireover could take several weeks to complete; it now runs in a few minutes! This feature is activated by default and controlled by the new expirebloomfp parameter in inn.conf. Many thanks to Kevin Bowling for this improvement.
-
The speed of expire has also been drastically improved for large news spools thanks to the recording of every cancellation alongside the existing storage and overview deletions, so that expire can just drop matching history entries without doing per-article retrieval system calls, thus saving a good amount of time at billion-article scale. This feature contributed by Kevin Bowling is not enabled by default. See the documentation of expiretombstone in inn.conf for more details, as well as nnrpdcheckart which also makes use of the cancel tombstone log file.
-
Added four new parameters to ovsqlite.conf for the ovsqlite overview method: mmapsize to have SQLite read data via mmap instead of copying into its own page cache, readercachesize to set the SQLite in-memory page cache size for each nnrpd reader process, walmode to enable SQLite's Write-Ahead Logging journal mode and improve read performance when multiple nnrpd processes access the overview database simultaneously, and walcheckpointthreshold to parameterize when to perform checkpoints. See the ovsqlite(5) manual page for more details. Thanks to Kevin Bowling for all these enhancements!
-
Added support for the ALPN TLS extension in nnrpd. Thanks to Roman Donchenko for this feature.
Bug Fixes
-
Fixed very infrequent errors of memory mapping when updating the active file or using the tradindexed overview method, as well as when updating the history file with nfswriter set to true. Thanks to Chris Knipe for the bug report and to Richard Kettlewell for the patch.
-
Fixed the rotation of the perl-nocem.log file generated when syslog is not available or the -l flag used with perl-nocem: the contents of this log file was mistakenly appended to news.notice by scanlogs.
-
Fixed makehistory so that malformed input does not insert a bogus overview entry. Thanks to Kevin Bowling for the patch.
Other Changes
-
Following upstream rename from blacklist to blocklist, the --with-blacklist configure flag is renamed --with-blocklist for blocklistd support in FreeBSD 15 and NetBSD 10. For backward compatibility, both blacklist and blocklist libraries will be searched by the new --with-blocklist flag. Thanks to Jose Luis Duran for the information.
-
When laxmid is set in the syntaxchecks parameter in inn.conf, Message-IDs without any
@character are now accepted by innd. -
Various other minor bug fixes and documentation improvements.