This fix makes the signal handler no longer modify errno value.
That was causing "no child processes" exceptions in places that
had nothing to do with signals or processes.
This change by itself does nothing, but it allows changing
e.what() to e.what(true) to get more details about an exception.
This can be useful for exception debugging.
If std::exception would be thrown anywhere in message processing
in Dhcp4Srv::run(), we would not catch it. In principle, that
should never happen, as the Kea code only throws isc::Exception
derivatives, but maybe some of the system or boost calls could
throw std::exception.
The calls to handleSignal() are now wrapped with catch clauses
for both ISC and standard exceptions. This would not solve the
underlying issue, but at least would cause the server to continue
after the issue occurs.
One of the hypotheses for the #8785 issue is mis-handling of
the SingalInterruptOnSelect exception. This message will
be printed every time a signal is received during select().
Conflicts:
src/bin/dhcp4/dhcp4_messages.mes
src/bin/dhcp4/dhcp4_srv.cc
Rather that stopping it explicitly, the server was relying D2ClientMgr
to stop itself during its own destruction. This was falling over during
process wind-down because the IfaceMgr singletone was being destroyed before
the D2ClientMgr instance. The server destructor now explicitly stops the
D2ClientMgr.
src/bin/dhcp6/dhcp6_messages.mes
added DHCP6_SRV_D2STOP_ERROR log message
src/bin/dhcp6/dhcp6_srv.cc
Dhcpv6Srv::stopD2() - new method stops the NCR sender, causing it to
unregister its WathSocket from IfaceMgr
Dhcpv6Srv::~Dhcpv6Srv() - added call to Dhcpv6Srv::stopD2()
src/bin/dhcp6/tests/dhcp6_process_tests.sh.in
Enabled DNS updates in the CONFIG string. This ensures the D2
client will be started during system tests
Rather that stopping it explicitly, the server was relying D2ClientMgr
to stop itself during its own destruction. This was falling over during
process wind-down because the IfaceMgr singletone was being destroyed before
the D2ClientMgr instance.
The server destructor now explicitly stops the D2ClientMgr.
src/bin/dhcp4/dhcp4_messages.mes
added DHCP4_SRV_D2STOP_ERROR log message
src/bin/dhcp4/dhcp4_srv.cc
Dhcpv4Srv::stopD2() - new method stops the NCR sender, causing it to
unregister its WathSocket from IfaceMgr
Dhcpv4Srv::~Dhcpv4Srv() - added call to Dhcpv4Srv::stopD2()
src/bin/dhcp4/tests/dhcp4_process_tests.sh.in
Enabled DNS updates in the CONFIG string. This ensures the D2
client will be started during system tests
Added required input config report file parameter to
mk_cfgrpt.sh rather than having hard-coded by configure.
This allows cfgrpt/Makefile to pass in the pathname of
the report file it used in its "config_report.cc", as
the input report file. In other words, we garuantee that
the file we used for change is the same file we generate
the source from.
By generating config_report.cc in the cfgrpt directory Makefile
rather than configure, it can be treated as any other generated
source file, rather than a one-off special case.
Moved cfgrpt directory from bin to lib since it creates a library
rather than an executable.
mk_cfgrpt.sh is now generated by configure from a .in file and
Details:
configure.ac
removed call to mk_cfgrpts.sh
added mk_cfgprt.sh to list of files generated by configure
src/bin/Makefile.am
removed cfgrpt dir
changed cfgrpt directory to lib
src/bin/d2/Makefile.am
src/bin/d2/tests/Makefile.am
src/bin/dhcp4/Makefile.am
src/bin/dhcp4/tests/Makefile.am
src/bin/dhcp6/Makefile.am
src/bin/dhcp6/tests/Makefile.am
src/bin/lfc/Makefile.am
src/bin/lfc/tests/Makefile.am
src/bin/perfdhcp/Makefile.am
src/bin/perfdhcp/tests/Makefile.am
src/lib/Makefile.am
added cfgrpt dir
src/lib/cfgrpt/Makefile.am
changed include dir to be in lib not dir
added config_report.cc to CLEANFILES
added config_report.cc to BUILD_SOURCES
removed config_report.cc from libcfgrpt_la_SOURCES
added rule for config_report.cc to call mk_cfgrpt.sh