[Kea-announce] Kea 1.7.9, a new development release of Kea, is now available

Michael McNally mcnally at isc.org
Wed Jun 24 18:46:58 UTC 2020


Internet Systems Consortium is pleased to announce the release of Kea 1.7.9.

Kea releases are divided into two branch sequences:

1)  A current stable branch (currently 1.6.x) which receives only important
     bug fixes and is otherwise feature-stable, and

2)  An experimental development branch (currently 1.7.x) where new features
     are added and made available for testing during development, before eventually
     being included in the next stable release branch.

Kea 1.7.9 is the latest release in the experimental development branch.


Michael McNally
ISC Support

-----------------------

# Kea 1.7.9, June 24th 2020, Release Notes

Welcome to Kea 1.7.9, a monthly development release of Kea. As with any
other development release, use this with caution. Development releases
are not recommended for production use.

The most significant changes introduced in this version are:

1. **High Availability and Multi-Threading**. Several remaining issues
when using HA in multi-threading mode have been resolved: HA service
handling commands are now thread-safe (#1277); several potential
problems reported by thread sanitizer have been addressed (#1239);
liblog, a logging subsystem used by Kea, is now thread-safe (#1266); a
decline, which causes a dropped packet in an updateLease race, now
issues a more useful warning (#1232); and parking lots are now
thread-safe. (#1255) There is one known problem that may manifest iself
during HA + MT, but it affects only shutdown procedure. For details, see
the Known Issues section below.

2. **Leasequery for DHCPv6**. The LeaseQuery hook library, introduced in
the last release, has been extended to DHCPv6. Kea now fully supports
leasequery for both DHCPv4 and DHCPv6. The leasequery mechanism allows
relay agents and other entities to query for details regarding assigned
IP addresses and DUID bindings. #1235

3. **Negative statistics**. A longstanding problem of statistics
sometimes becoming negative has been fixed. Another aspect of the
underlying issue that under certain circumstances Kea would produce an
error complaining about the getNextRow failure on MySQL. Our belief is
that both problems are now fixed. Please report if you still experience
negative counters after upgrading to 1.7.9 #1196, #944.

4. **Packages improvements**. Package descriptions are now updated. In
particular, it is clearer that the common package contains hooks
libraries. (#1209) Also, a problem with starting Kea on Debian 9 has
been solved. #1261

5. **Legacy comment to user context conversion has been removed**.
Historically, Kea had the ability to add `comments` to various
configuration structures (which could store only a single line of text);
later, it was extended to support `user-context`, which is much more
flexible and can store arbitrary metadata. Kea used to convert
`comments` entries in `user-context` into legacy plain `comments`. This
backwards compatibility measure is now removed. #1100

6. **Parsers update**. The parsers (part of the code that handles
configuration files and parts of commands) has been refactored. This
should be transparent to users. However, there is a small chance that
this introduced different behavior in some corner cases of
configurations handling #1245.

7. **The Forensic Logging hook is now multi-threading compatible**. We
have addressed all known MT-related issues in forensic logging. The
library should work with MT enabled. #1203

8. **Bugfixes**. A change in an earlier Kea version introduced a bug
that caused Kea to emit an error message every time a command was
processed. The harmless but annoying error is now fixed. (#1234) Kea no
longer incorrectly logs address lease renew as prefix renew (#1276); the
build system now better handles situations when log4cplus is installed
in a non-standard location (#1273); config-backend-pull has been fixed
(#1189); and a problem with Hammer not detecting packages correctly has
been fixed (#1262).

## Known Issues

Our internal testing is aware of only one outstanding issue, somewhat
related to MT and HA: in some specific circumstances (notably, when Kea
has received a packet and still processes it before sending a response
while the application is being shut down), the application may fail
during shutdown. The underlying problem is related to improper hooks
library de-initialization and has existed for a long time; it is not
strictly related to MT. The issue is being reproducible very rarely in
our tests. However, due to the parallel nature of MT, the likelihood of
triggering the problem, especially under heavy load, is greater. Details
are in ticket #1279. This problem is expected to be fixed before the
next stable (1.8.0) version is released.

## Release Model
The Kea project has a significant production deployment base with users
who are looking for stability, rather than a constant stream of new
"bleeding-edge" features. At the same time, we want to continue
developing the software and add some new powerful, but
difficult-to-implement, features. To meet both of these requirements we
have both Stable and Development branches.

Stable releases are what you would expect: stable, released
infrequently, without new features or significant changes, very
well-tested. These can be identified by an even-numbered major version
number. The current stable release is 1.6.2, with a major version of
1.6, and minor version 2. If we discover important bugs that require
fixing, we may release 1.6.3, but that will be determined on a
case-by-case basis. The next major stable version will be 1.8.0,
followed by 2.0.0 in the future.

Development releases can be easily identified by an odd major version
number: for example, 1.7.9 is a development release. In July 2020 we are
releasing 1.7.10, the next development version. Once 1.8.0 is out, we
will continue our development work with 1.9.0, then 1.9.1, and so on.

Our goal is to make the development release available on the last
Wednesday of each month. There may be exceptions (such as during
holidays), but that's the general plan.

We encourage users to test the development releases and report back
their findings.

For more details on the plan, see ISC's Software Support Policy at
https://kb.isc.org/docs/aa-00896.

## Kea overview
Kea is a DHCP implementation developed by Internet Systems Consortium,
Inc. that features fully functional DHCPv4 and DHCPv6 servers, a dynamic
DNS update daemon, a Control Agent (CA) that provides a REST API to
control the DHCP and DNS update servers, an example shell client to
connect to the CA, a daemon that is able to retrieve YANG configuration
and updates from Sysrepo, and a DHCP performance-measurement tool. Both
DHCP servers support server discovery, address assignment, renewal,
rebinding, release, decline, information request, DNS updates, client
classification, and host reservations. The DHCPv6 server also supports
prefix delegation. Lease information is stored in a CSV file by default;
it can optionally be stored in a MySQL, PostgreSQL, or Cassandra
database instead. Host reservations can be stored in a configuration
file, or in a MySQL, PostgreSQL, or Cassandra database. They can also be
retrieved from a RADIUS server, although this functionality is somewhat
limited. Kea DHCPv4 and DHCPv6 daemons provide support for YANG models,
which are stored in a Sysrepo datastore and can be configured via the
NETCONF protocol.

This text references issue numbers. For more details, visit the Kea
GitLab page at https://gitlab.isc.org/isc-projects/kea/issues.

## License
This version of Kea is released under the Mozilla Public License,
version 2.0.

   https://www.mozilla.org/en-US/MPL/2.0

The premium and subscriber-only hooks libraries are provided in source
code form, under the terms of an End User License Agreement (you will
get the source code that you can modify freely, but you are not
permitted to redistribute it).

## Download
Pre-built ISC packages for current versions of the most popular Linux
operating systems are available at:

   https://cloudsmith.io/~isc/repos/

The Kea source and PGP signature for this release may be downloaded from:

   https://www.isc.org/download

The signature was generated with the ISC code signing key which is
available at:

   https://www.isc.org/pgpkey

ISC provides detailed documentation, including installation instructions
and usage tutorials, in the Kea Administrator Reference Manual.
Documentation is included with the installation, at
https://kea.readthedocs.io/en/latest/, or via
https://kb.isc.org/docs/kea-administrator-reference-manual in HTML,
plain text, or PDF formats. ISC maintains a public open source code
tree, a wiki, an issue tracking system, milestone planning, and a
roadmap at https://gitlab.isc.org/isc-projects/kea.

Limitations and known issues with this release can be found at
https://gitlab.isc.org/isc-projects/kea/wikis/known-issues-list.

We ask users of this software to please let us know how it worked for
you and what operating system you tested on. Feel free to share your
feedback on the Kea Users mailing list
(https://lists.isc.org/mailman/listinfo/kea-users).  Also we would like
to hear whether the documentation is adequate and accurate. Please open
tickets in the Kea GitLab project for bugs, documentation omissions and
errors, and enhancement requests. We want to hear from you even if
everything worked.

## Support
Professional support for Kea is available from ISC. We encourage all
professional users to consider this option; Kea development and
maintenance are funded with support subscriptions. For more information
on ISC's Kea and DHCP software support see https://www.isc.org/support/.

Free best-effort support is provided by our user community via a mailing
list. Information on all public email lists is available at
https://www.isc.org/community/mailing-list. If you have any comments or
questions about working with Kea, please share them to the Kea Users
List (https://lists.isc.org/mailman/listinfo/kea-users). Bugs and
feature requests may be submitted via GitLab at
https://gitlab.isc.org/isc-projects/kea/issues.

## Changes
The following summarizes changes and important upgrade notes since the
previous release (1.7.8).


1762.	[bug]		fdupont
	Fixed the control command execution: either it was deferred by
	DHCP packet processing or a spurious error message was logged.
	(Gitlab #1234)

1761.	[bug]		fdupont
	Found and fixed a possible source of incorrect statistics cached
	in MySQL and PostgreSQL lease databases which in some cases
	made servers fail to start.
	(Gitlab #944,#1196)

1760.	[bug]		razvan
	Fixed log message on DHCPv6 IA_NA lease renew.
	(Gitlab #1276)

1759.	[bug]*		fdupont
	Fixed the way configuration global entries are parsed in DHCPv4
	and DHCPv6 servers. We expect that the change will not be visible
	for sane configurations.
	(Gitlab #1245)

1758.	[func]*		fdupont
	Earlier Kea versions converted "comment" entries to "user-context"
	scope in the configuration when using config-get. This backwards
	compatibility has now been removed. This may affect users who use
	config-get or config-write commands and use comments in their
	configurations.
	(Gitlab #1100)

1757.	[bug]		fdupont
	config-backend-pull commands were fixed to be applied to the
	current configuration
	(Gitlab #1189)

1756.	[bug]		fdupont
	Made the parking lot API generic thread safe.
	(Gitlab #1255)

1755.	[func]*		fdupont
	Implemented various race avoidance mechanisms in the multi-threaded
	packet processing: only one query from the same client is processed,
	subsequent queries from the same client are dropped at the exception
	of the most recent which will be processed after. When picking
	a free address or prefix from a pool the resource is considered
	as not free for other threads. This is used by the lease commands
	hooks library to avoid conflicts with a minimal overhead.
	Finally individual lease reclamation is exclusive of multi-threaded
	packet processing.
	(Gitlab #1147)


Thank you again to everyone who assisted us in making this release
possible.

We look forward to receiving your feedback.


More information about the Kea-announce mailing list