Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2023-07-17T13:58:21Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/2798d_controller uses COMMAND_SUCCESS and COMMAND_ERROR instead of CONTROL_RESULT...2023-07-17T13:58:21ZRazvan Becheriud_controller uses COMMAND_SUCCESS and COMMAND_ERROR instead of CONTROL_RESULT_SUCCESS and CONTROL_RESULT_ERRORthere are 2 defines used for createAnswer function, currently both have same values, but code should be cleaned up to use only one definition
d_process.h:
```
/// @brief Returned by the process to indicate a command was successful.
stat...there are 2 defines used for createAnswer function, currently both have same values, but code should be cleaned up to use only one definition
d_process.h:
```
/// @brief Returned by the process to indicate a command was successful.
static const int COMMAND_SUCCESS = 0;
/// @brief Returned by the process to indicates a command failed.
static const int COMMAND_ERROR = 1;
/// @brief Returned by the process to indicates a command is not valid.
static const int COMMAND_INVALID = 2;
```
command_interpreter.h
```
/// @brief Status code indicating a successful operation
const int CONTROL_RESULT_SUCCESS = 0;
/// @brief Status code indicating a general failure
const int CONTROL_RESULT_ERROR = 1;
/// @brief Status code indicating that the specified command is not supported.
const int CONTROL_RESULT_COMMAND_UNSUPPORTED = 2;
/// @brief Status code indicating that the specified command was completed
/// correctly, but failed to produce any results. For example, get
/// completed the search, but couldn't find the object it was looking for.
const int CONTROL_RESULT_EMPTY = 3;
/// @brief Status code indicating that the command was unsuccessful due to a
/// conflict between the command arguments and the server state. For example,
/// a lease4-add fails when the subnet identifier in the command does not
/// match the subnet identifier in the server configuration.
const int CONTROL_RESULT_CONFLICT = 4;
```
only in d_controller.cc the COMMAND_SUCCESS and COMMAND_ERROR are used (COMMAND_INVALID not used anywhere):
```
./src/lib/process/d_controller.cc: ConstElementPtr error = createAnswer(COMMAND_ERROR,
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_SUCCESS, config));
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_ERROR, "Argument must be a map"));
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_ERROR,
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_ERROR,
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_ERROR,
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_ERROR,
./src/lib/process/d_controller.cc: ConstElementPtr error = createAnswer(COMMAND_ERROR,
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_SUCCESS, response));
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_SUCCESS, status));
./src/lib/process/d_controller.cc: answer = createAnswer(COMMAND_SUCCESS, getVersion(false), arguments);
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_SUCCESS, isc::detail::getConfigReport()));
./src/lib/process/d_controller.cc: return (createAnswer(COMMAND_SUCCESS, "Process has not been initialized"));
```kea2.3.8Razvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/issues/2788Kea might not use getopt correctly on alpine2024-01-26T18:01:50ZAndrei Pavelandrei@isc.orgKea might not use getopt correctly on alpineOn all the alpine systems in jenkins, we have this failure:
```
netconf_controller_unittests.cc:134
Expected equality of these values:
std::string(ex.what())
Which is: "unsupported option: [x] d2-test-config.json"
"unsupported o...On all the alpine systems in jenkins, we have this failure:
```
netconf_controller_unittests.cc:134
Expected equality of these values:
std::string(ex.what())
Which is: "unsupported option: [x] d2-test-config.json"
"unsupported option: [x] "
```
It's not related only to NETCONF. The tests there are just more thorough and check for the error message and that's why it appears only there. The tested code is common to all binaries.
The tested argument is just `-x`. It could be that on alpine systems, the way Kea uses getopt in `DControllerBase::parseArgs()` doesn't clear an argument previously used in the same unit test, which would be why `d2-test-config.json` appears in the error message.
You can see the failures here: https://jenkins.aws.isc.org/job/kea-dev/job/ut-extended/1017/.kea2.5.5Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/issues/2076Move DB-related code out of libprocess2021-09-16T15:12:53ZAndrei Pavelandrei@isc.orgMove DB-related code out of libprocessThis is just a parent issue for !110 which had closed issue #156 as parent.This is just a parent issue for !110 which had closed issue #156 as parent.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/1096thread sanitizer reporting unit test in lib process2020-04-22T18:41:44ZWlodzimierz Wencelthread sanitizer reporting unit test in lib processhttps://jenkins.isc.org/job/kea-1.7/job/ut-thread/3/testReport/
DStubControllerTest.ioSignals
```
Error Message
d_controller_unittests.cc:307
Expected: 3
To be equal to: signals.size()
Which is: 0
Stacktrace
d_controller_un...https://jenkins.isc.org/job/kea-1.7/job/ut-thread/3/testReport/
DStubControllerTest.ioSignals
```
Error Message
d_controller_unittests.cc:307
Expected: 3
To be equal to: signals.size()
Which is: 0
Stacktrace
d_controller_unittests.cc:307
Expected: 3
To be equal to: signals.size()
Which is: 0
```
failing on freebsd 12 and ubuntu 19.10
IOSignalTest.mixedSignals
```
Error Message
io_service_signal_unittests.cc:126
Failed
Test Time: 1000 expired
Stacktrace
io_service_signal_unittests.cc:126
Failed
Test Time: 1000 expired
```
failing on freebsd 12kea1.7.7Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/470server-tag-get-command2019-08-01T19:46:01ZWlodzimierz Wencelserver-tag-get-commandWhen I was writing some tests for db backend I noticed that to set tag of a server you have to:
* add it in local config file
* use config-set
is it possible/useful to have command just for tags?When I was writing some tests for db backend I noticed that to set tag of a server you have to:
* add it in local config file
* use config-set
is it possible/useful to have command just for tags?Kea1.6-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/381Bad config crashes CA or D2 servers even with -c2019-01-11T16:33:49ZFrancis DupontBad config crashes CA or D2 servers even with -cFound the bug in lib process: without severity the logConfigParser of process library crashes on a null shared pointer.Found the bug in lib process: without severity the logConfigParser of process library crashes on a null shared pointer.Kea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/376logging configuration is not handled correctly by the process library.2019-07-30T10:57:19ZFrancis Dupontlogging configuration is not handled correctly by the process library.Confirmed bugs. Requires other libprocess issues and loggers config handling to be merged before.Confirmed bugs. Requires other libprocess issues and loggers config handling to be merged before.Kea1.6-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/375Add config-reload support in process library2019-01-22T21:08:46ZFrancis DupontAdd config-reload support in process library#30 !183 adds config-set support in process library but config-reload, a priori simpler, is missing.#30 !183 adds config-set support in process library but config-reload, a priori simpler, is missing.Kea1.6Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/255kea-netconf (and other servers/agents) creating incorrectly named pid file2022-11-02T15:08:42ZWlodzimierz Wencelkea-netconf (and other servers/agents) creating incorrectly named pid filefile name is ```kea-netconf.kea-netconf.pid``` instead of ```kea-netconf.pid```
```
wlodek@debian9-64-2:~/installed$ cat git/var/kea/kea-netconf.kea-netconf.pid
16207
wlodek@debian9-64-2:~/installed$ ps -aux | grep kea
root 16206 0...file name is ```kea-netconf.kea-netconf.pid``` instead of ```kea-netconf.pid```
```
wlodek@debian9-64-2:~/installed$ cat git/var/kea/kea-netconf.kea-netconf.pid
16207
wlodek@debian9-64-2:~/installed$ ps -aux | grep kea
root 16206 0.0 0.2 47612 3216 pts/0 S+ 07:10 0:00 sudo git/sbin/kea-netconf -c kea-netconf.conf -d
root 16207 0.0 0.5 158128 9332 pts/0 S+ 07:10 0:00 git/sbin/kea-netconf -c kea-netconf.conf -d
wlodek 16341 0.0 0.0 11112 940 pts/1 S+ 07:11 0:00 grep kea
```backloghttps://gitlab.isc.org/isc-projects/kea/-/issues/148lib process servers without arguments2018-10-19T22:25:15ZFrancis Dupontlib process servers without argumentsAll servers that use CPL architecture (D2, CA, netconf) are unable to print out usage information when run without any parameters. Instead, they print out cryptic error message as shown below:
```$ kea-ctrl-agent
2018-10-01 22:28:51.285...All servers that use CPL architecture (D2, CA, netconf) are unable to print out usage information when run without any parameters. Instead, they print out cryptic error message as shown below:
```$ kea-ctrl-agent
2018-10-01 22:28:51.285 FATAL [kea-ctrl-agent.dctl/23508] DCTL_PID_FILE_ERROR
Control-agent could not create a PID file: Daemon::makePIDFileName config file name is not set
Service failed: Launch failed: Daemon::makePIDFileName config file name is not set'''Kea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/18lib process unable to handle more than one configuration (staging and running)2018-09-30T19:38:12ZFrancis Dupontlib process unable to handle more than one configuration (staging and running)According to trac3543 review the lib process lacks a versioning feature as dhcpsrv cfgmgr provides.According to trac3543 review the lib process lacks a versioning feature as dhcpsrv cfgmgr provides.Kea1.5-beta1Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/6Simplify CPL framework to be more suitable for kea-netconf2022-10-27T12:44:25ZTomek MrugalskiSimplify CPL framework to be more suitable for kea-netconfThe CPL framework that was initially designed and developed for D2 and was later used for CA is considered superior to what DHCPv4 and DHCPv6 use. However it has a number of disadvantages that should be mitigated:
- way too many classes...The CPL framework that was initially designed and developed for D2 and was later used for CA is considered superior to what DHCPv4 and DHCPv6 use. However it has a number of disadvantages that should be mitigated:
- way too many classes needed (agent, classes derived derived from controller, process, DCfgContextBase, DCfgMgrBase)
- lack of common class to store logging information (Daemon from libdhcpsrv is used for this, resulting in the need to include libdhcpsrv library everywhere)Kea1.5-beta1