Loop version 1.99.4 is available
July 14, 2025
Loop version 1.99.4 has been released (tagged at
1.99.4-20250713141817.bfebf34e59
). This is in a series of releases
made from the 1.99 development branch.
The following are release notes for Loop 1.99.4:
- RT1513: Support for Fedora 40 has been dropped as it has reached EOL upstream.
- RT1524: Support for RHEL 7 has been dropped as it has reached
end-of-maintenance support upstream. Compiling Loop packages for RHEL
7 had needed extra dependencies such as a newer C compiler from
devtoolset-7-gcc
with support for<stdatomic.h>
, and several code and build farm customizations. These have now been dropped. - RT1543: Several files missing from the dist tarball (source code
tarball) were added to
EXTRA_DIST
. These are not user-visible as they're not packaged in the binary packages. - RT1544: A unittest suite was added for the database versioning
functionality (
dbversion
). - RT1550: A seperate memory context is now used for OpenSSL 3 library's memory allocations. This allows the user to do accounting of OpenSSL 3 library's memory allocations.
- RT1551: A benchmark program called
benchmark-zone-queries
was added. This program is not packaged in the binary packages currently. - RT1557: The task manager (
taskmgr
) was refactored to use atomic operations and remove mutex locking in several places. - RT1558: Loop's worker threads (part of the task manager) have been
refactored to use event loops instead of condition variables. The user
visible aspect of this would be that in backtraces, worker threads
would no longer be seen blocked on
pthread_cond_wait()
waiting for work. Instead they would be seen blocked onepoll_wait()
(Linux) orkevent()
(FreeBSD). - RT1560: Some unnecessary arrays (proportional to the
<maximum-sockets> value) and mutex arrays (and associated locking)
were removed from the socket manager (
socketmgr
). This was possible due to the use ofstruct epoll_event->data.ptr
andstruct kevent->udata
fields available as part of epoll and kevent respectively. Now, the <maximum-sockets> value as provided tonamed -S
is simply a limit and does not use any additional resources. It could become an advisory limit in the future. - RT1562: A member of the socket structure was not initialized leading
to a single Valgrind memcheck report which was fixed. There are no
more Valgrind memcheck reports generated for
named
during any of our unit and system tests currently. - RT1515: The object attribute's value provided to
dnssec-keyfromlabel -l
is now properly URI percent-encoded per RFC 7512 and RFC 3986. - RT1564: The PIN command-line argument for DNSSEC programs has been
removed. A PIN can now be provided as part of the PKCS#11 URI itself
(see RFC 7512 for the
pin-source
andpin-value
attributes). - RT1516: A PKCS#11 HOWTO has been added to the Loop User Manual.
- RT1565: Release notes are now available in the Loop User Manual.
RT1560 and RT1558 involve significant changes to the socketmgr
and
taskmgr
respectively. If there are any issues observed while using
Loop, please contact us.
Other changes were made to the tree that are not ready for public release.
Some more development releases will be made from this branch until Loop 2.0 is ready to be branched. You can read about Loop branches and version numbering.