Kea merge requestshttps://gitlab.isc.org/isc-projects/kea/-/merge_requests2022-09-23T09:58:31Zhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1795Resolve "Define new Bulk LeaseQuery functions in LeaseMgr"2022-09-23T09:58:31ZThomas MarkwalderResolve "Define new Bulk LeaseQuery functions in LeaseMgr"Closes #2571Closes #2571kea2.3.1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1792Resolve "Replace use of CriticalSection in stat-leaseX-get commands with Memf...2022-09-21T12:44:18ZThomas MarkwalderResolve "Replace use of CriticalSection in stat-leaseX-get commands with Memfile_LeaseMgr mutex lock"Closes #2507Closes #2507kea2.3.1Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1790Resolve "Kea HA active-passive - the HA partnership flaps if a lease update i...2022-09-22T13:49:24ZMarcin SiodelskiResolve "Kea HA active-passive - the HA partnership flaps if a lease update is rejected because it is invalid"Closes #2408Closes #2408kea2.3.1Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1787Resolve "hammer prepare-system issues"2022-10-11T17:23:39ZAndrei Pavelandrei@isc.orgResolve "hammer prepare-system issues"Closes #2539.
* [x] d9ae0e009a30ab78e9473191aeef031793d1e265 add --with-randomly to hammer.py
* For testing both with and without a feature over time, you might want to
enable or disable it non-determinstically for a certain test ...Closes #2539.
* [x] d9ae0e009a30ab78e9473191aeef031793d1e265 add --with-randomly to hammer.py
* For testing both with and without a feature over time, you might want to
enable or disable it non-determinstically for a certain test run. This
can be done with the --with-randomly parameter which has a 50% chance of
enabling a feature and a 50% chance of disabling it.
* [x] ed4d81e29acfa64411def978ffeb96429968c61e mostly cosmetical changes to hammer.py
* [x] 171c4bb8c2df396245f5e8bc41e83e595b98f8de hammer.py: install dnf on CentOS 7 and RHEL 7
* Fixes the following error that appeared recently on CentOS 7:
`Error: Not tolerating missing names on install, stopping.`
* [x] 8f1bfe23c145920bf228a015faf7beabadfd6c7c hammer.py: configure RPM distros to look for libraries in /usr/local/lib64
* [x] e3291ff284ff8687f5662b3c5745db0bda3dd24d hammer.py: switch from PostgreSQL 14 to the default in RHEL 9
* There is a lot of code that deals with previously installed versions of
PostgreSQL. This is good since it deals with a lot of use cases and
allows us to not regenerate images, but it also adds complexity.
* [x] 67eda5ece239eea666c2e7586d4bf155a02338f7 hammer.py: remove superfluous ldconfig in alpine
* [x] f72ce91c56b41115d2b84ec667b1ddc61353c94a hammer.py: use venv or packages instead of virtualenv
* This is in the detriment of virtualenv which is considered deprecated.
* [x] 3411375b26963be5a89ab8ddaf4217f029ac2b6f hammer.py: reinstall pkg to update repositories
* This way, a pkg-search command will find package versions that can be
installed rather than outdated versions. Solves errors like the following: `pkg: No packages available to install matching 'py38-sphinx' have been found in the repositories`
* [x] 4844082f71135ae804454b6a53fd286ca98903c7 hammer.py: delete the default Heimdal krb5-config in FreeBSD
* This makes it possible for Kea to pick up by default on the krb5-config from the MIT version of Kerberos packages. We can then remove this step from our Jenkinsfiles.
* [x] 8c32df649cf9ac46bdfa9c8528710c856614e4bc hammer.py: never discard features or prevent their installation
* At most, incompatible features should log an error and make hammer exit. But there are no incompatible features to my knowledge. This is the commit that fixes the problem in the issue, but most of the others fix issues in disthceck.
* [x] b3baa5aebdb1f77123df393220d6048dba327a70 hammer.py: warn if there is no Release file
* It helps with errors that appear on the first time a Debian package is uploaded like: `E: The repository https://packages.aws.isc.org/repository/kea-2.3-debian-11-ci kea Release does not have a Release file.`. If this gets merged, I would agree to close https://gitlab.isc.org/isc-private/qa-dhcp/-/issues/277 and the associated MR.
Test run: https://jenkins.aws.isc.org/view/Kea-manual/job/kea-manual/job/distcheck/102/. No hammer errors. The YANG errors are solved in another issue.kea2.3.1Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1786Resolve "Long MAC address in reservation crashes KEA when using reservation-g...2022-09-23T13:01:26ZFrancis DupontResolve "Long MAC address in reservation crashes KEA when using reservation-get*"Part of #2557Part of #2557kea2.3.1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1785Resolve "Build lfc before admin"2022-09-22T12:37:58ZFrancis DupontResolve "Build lfc before admin"Closes #2526Closes #2526kea2.3.1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1784Resolve "Leases-write command"2022-09-23T13:49:27ZFrancis DupontResolve "Leases-write command"Closes #1654Closes #1654kea2.3.1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1783Resolve "kea 2.x doesn't build with boost175+ with gcc 8.x"2022-09-14T14:14:14ZAndrei Pavelandrei@isc.orgResolve "kea 2.x doesn't build with boost175+ with gcc 8.x"Closes #2519.Closes #2519.kea2.3.1Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1782Resolve "update configure.ac to 2.3.1"2022-08-31T15:10:20ZWlodzimierz WencelResolve "update configure.ac to 2.3.1"Closes #2556Closes #2556kea2.3.1https://gitlab.isc.org/isc-projects/kea/-/merge_requests/1781Resolve "32 bits compatibity issues"2022-09-23T14:41:48ZFrancis DupontResolve "32 bits compatibity issues"Part of #2532Part of #2532kea2.3.1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1772Resolve "ISC DHCP spawning classes"2022-10-26T12:47:53ZRazvan BecheriuResolve "ISC DHCP spawning classes"Part of #2568Part of #2568kea2.3.1Razvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1762Resolve "ERROR log messages don't get sent to configured output file at startup"2022-09-08T13:07:13ZAndrei Pavelandrei@isc.orgResolve "ERROR log messages don't get sent to configured output file at startup"Closes #1955.Closes #1955.kea2.3.1Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1801Changes for Kea 2.3.1 release2022-09-26T14:34:04ZMarcin GodzinaChanges for Kea 2.3.1 releaseCloses #2577Closes #2577kea2.3.1Marcin GodzinaMarcin Godzinahttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1794Draft: Obsolete: the more aggresive approach with bulk retrieval and automati...2022-10-06T13:04:45ZAndrei Pavelandrei@isc.orgDraft: Obsolete: the more aggresive approach with bulk retrieval and automatic translatorsObsolete. Part of #2311.Obsolete. Part of #2311.kea2.3.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1829Resolve "bump up lib versions for 2.3.2"2022-10-24T20:46:23ZRazvan BecheriuResolve "bump up lib versions for 2.3.2"Closes #2607Closes #2607kea2.3.2Razvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1828[#2311] fix warning regarding capture of ‘this’2022-10-24T18:13:50ZAndrei Pavelandrei@isc.org[#2311] fix warning regarding capture of ‘this’Closes #2311.
The following warnings happen only when NETCONF is disabled and only on some compilers.
The timeline is:
* `[=]` gave `warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]`
* `[=, this]` don...Closes #2311.
The following warnings happen only when NETCONF is disabled and only on some compilers.
The timeline is:
* `[=]` gave `warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]`
* `[=, this]` done in !1811 to solve the warning in the first point outputs either `warning: explicit by-copy capture of ‘this’ redundant with by-copy capture default [enabled by default]` or `warning: explicit capture of 'this' with a capture default of '=' is a C++20 extension`. This is not the desired effect. I wanted to capture everything by copy and only `this` by reference, but this is not how you do it, you should have `&` before the variables in the part after the comma, but `&this` results in compiler errors.
* `[&]` in this MR should solve all problems and is safe because the only variable that is used inside the lambda is `state_` which is passed by reference because it's owner `this` is also passed by reference even if we had used `[=]`. So the behavior doesn't change from the first point.
Here are the full warnings:
```
CXX libkea_dhcpsrv_la-alloc_engine.lo
In file included from ../../../src/lib/dhcpsrv/alloc_engine.h:26:0,
from alloc_engine.cc:14:
../../../src/lib/util/readwrite_mutex.h: In member function ‘void isc::util::ReadWriteMutex::writeLock()’:
../../../src/lib/util/readwrite_mutex.h:57:29: warning: explicit by-copy capture of ‘this’ redundant with by-copy capture default [enabled by default]
gate1_.wait(lk, [=, this]() { return (!writeEntered()); });
^
../../../src/lib/util/readwrite_mutex.h:60:29: warning: explicit by-copy capture of ‘this’ redundant with by-copy capture default [enabled by default]
gate2_.wait(lk, [=, this]() { return (readers() == 0); });
^
../../../src/lib/util/readwrite_mutex.h: In member function ‘void isc::util::ReadWriteMutex::readLock()’:
../../../src/lib/util/readwrite_mutex.h:77:29: warning: explicit by-copy capture of ‘this’ redundant with by-copy capture default [enabled by default]
gate1_.wait(lk, [=, this]() { return (state_ < MAX_READERS); });
```
or
```
../../../src/lib/util/readwrite_mutex.h:57:29: warning: explicit capture of 'this' with a capture default of '=' is a C++20 extension [-Wc++20-extensions]
gate1_.wait(lk, [=, this]() { return (!writeEntered()); });
^
../../../src/lib/util/readwrite_mutex.h:60:29: warning: explicit capture of 'this' with a capture default of '=' is a C++20 extension [-Wc++20-extensions]
gate2_.wait(lk, [=, this]() { return (readers() == 0); });
^
../../../src/lib/util/readwrite_mutex.h:77:29: warning: explicit capture of 'this' with a capture default of '=' is a C++20 extension [-Wc++20-extensions]
gate1_.wait(lk, [=, this]() { return (state_ < MAX_READERS); });
```kea2.3.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1827Resolve "Fix warnings in msyql_lease_mgr (and likely postgresql) by #2595"2022-10-24T16:48:20ZThomas MarkwalderResolve "Fix warnings in msyql_lease_mgr (and likely postgresql) by #2595"Closes #2604Closes #2604kea2.3.2Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1826Draft: over master: improve NETCONF performance2022-10-24T16:16:22ZAndrei Pavelandrei@isc.orgDraft: over master: improve NETCONF performance... by retrieving data nodes only once from the sysrepo datastore and
iterating through them to get the leaves and leaf-list nodes that are
required, as opposed to retrieving each and every leaf and leaf-list
node from the datastore.
Th...... by retrieving data nodes only once from the sysrepo datastore and
iterating through them to get the leaves and leaf-list nodes that are
required, as opposed to retrieving each and every leaf and leaf-list
node from the datastore.
This empirically reduced the time required to push a configuration of
60k leaves and leaf-list nodes from approximately 9m30s to 3s.
Closes #2400.kea2.3.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1825reorder methods in YANG translator to facilitate review of follow-up issue 24002022-10-21T15:24:29ZAndrei Pavelandrei@isc.orgreorder methods in YANG translator to facilitate review of follow-up issue 2400Closes #2311.Closes #2311.kea2.3.2https://gitlab.isc.org/isc-projects/kea/-/merge_requests/1824improve NETCONF performance2022-10-24T16:14:18ZAndrei Pavelandrei@isc.orgimprove NETCONF performance... by retrieving data nodes only once from the sysrepo datastore and
iterating through them to get the leaves and leaf-list nodes that are
required, as opposed to retrieving each and every leaf and leaf-list
node from the datastore.
Th...... by retrieving data nodes only once from the sysrepo datastore and
iterating through them to get the leaves and leaf-list nodes that are
required, as opposed to retrieving each and every leaf and leaf-list
node from the datastore.
This empirically reduced the time required to push a configuration of
60k leaves and leaf-list nodes from approximately 9m30s to 3s. I encourage
the reviewer to test the times in their setup as well.
The XML configuration that I used I generated with this script: [big-yang-v4-xml](/uploads/2d0acf223253bfb50a18db61f1f491dd/big-yang-v4-xml).
Here is the generated configuration: [kea-dhcp4-big.xml](/uploads/c6249d823b2c5f825c58b904dc477707/kea-dhcp4-big.xml)
You should be able to push this configuration with `sysrepocfg -d running --edit=/etc/kea-dhcp4-big.xml`.
Closes #2400.
This MR is against a branch that is spun off the main MR of 2311 to make the changes more readable. After it is approved, hopefully #2311 would have been merged by then, and I will make the necessary rituals to merge it to master.
```mermaid
graph LR
2311-sysrepo2 --minor reordering of functions to make this MR more readable--> 2311-reorder
2311-reorder --this MR--> 2400-netconf-performance
```kea2.3.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.org