3017-fix-failed-to-open-socket-address-already-in-use-on-reconfiguration

Closes #3017 (closed).

Regression in system tests.

During reconfiguration, Kea logs WARN DHCPSRV_OPEN_SOCKET_FAIL failed to open socket: Failed to open socket on interface enp0s9, reason: failed to bind fallback socket to address 192.168.50.252, port 67, reason: Address already in use - is another DHCP server running?.

Reconfiguration is reported as succesful INFO [kea-dhcp4.dhcp4/1970329.139865170837440] DHCP4_DYNAMIC_RECONFIGURATION_SUCCESS dynamic server reconfiguration succeeded with file: /usr/local/etc/kea/kea-dhcp4.conf, but Kea is no longer able to accept incoming DHCP traffic.

Only v4 tests seem to be affected:

> tests.dhcp.hooks/test_flex_id/run_tests___alpine_3_16_v4___test_v4_flexid_reconfigure/
> tests.dhcp.hooks/test_flex_id/run_tests___fedora_36_v4___test_v4_flexid_reconfigure/
> tests.dhcp.hooks/test_flex_id/run_tests___ubuntu_22_04_v4___test_v4_flexid_reconfigure/
> tests.dhcp.hooks/test_hosts_cmds/run_tests___alpine_3_16_v4___test_v4_reconfigure_MySQL_http_/
> tests.dhcp.hooks/test_hosts_cmds/run_tests___alpine_3_16_v4___test_v4_reconfigure_PostgreSQL_http_/
> tests.dhcp.hooks/test_hosts_cmds/run_tests___fedora_36_v4___test_v4_reconfigure_MySQL_http_/
> tests.dhcp.hooks/test_hosts_cmds/run_tests___fedora_36_v4___test_v4_reconfigure_PostgreSQL_http_/
> tests.dhcp.hooks/test_hosts_cmds/run_tests___ubuntu_22_04_v4___test_v4_reconfigure_MySQL_http_/
> tests.dhcp.hooks/test_hosts_cmds/run_tests___ubuntu_22_04_v4___test_v4_reconfigure_PostgreSQL_http_/
44a54,89
> tests.dhcp.v4.cc/test_command_control_http/run_tests___alpine_3_16_v4___test_control_channel_http_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___alpine_3_16_v4___test_control_channel_http_change_socket_during_reconfigure/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___alpine_3_16_v4___test_control_channel_http_config_set_basic/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___alpine_3_16_v4___test_control_channel_http_config_write/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___alpine_3_16_v4___test_control_channel_http_reload_config/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___fedora_36_v4___test_control_channel_http_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___fedora_36_v4___test_control_channel_http_change_socket_during_reconfigure/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___fedora_36_v4___test_control_channel_http_config_set_basic/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___fedora_36_v4___test_control_channel_http_config_write/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___fedora_36_v4___test_control_channel_http_reload_config/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___ubuntu_22_04_v4___test_control_channel_http_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___ubuntu_22_04_v4___test_control_channel_http_change_socket_during_reconfigure/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___ubuntu_22_04_v4___test_control_channel_http_config_set_basic/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___ubuntu_22_04_v4___test_control_channel_http_config_write/
> tests.dhcp.v4.cc/test_command_control_http/run_tests___ubuntu_22_04_v4___test_control_channel_http_reload_config/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___alpine_3_16_v4___test_control_channel_keashell_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___alpine_3_16_v4___test_control_channel_keashell_set_config_basic/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___alpine_3_16_v4___test_control_channel_keashell_write_config/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___alpine_3_16_v4___test_control_channel_socket_reload_config/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___fedora_36_v4___test_control_channel_keashell_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___fedora_36_v4___test_control_channel_keashell_set_config_basic/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___fedora_36_v4___test_control_channel_keashell_write_config/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___fedora_36_v4___test_control_channel_socket_reload_config/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___ubuntu_22_04_v4___test_control_channel_keashell_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___ubuntu_22_04_v4___test_control_channel_keashell_set_config_basic/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___ubuntu_22_04_v4___test_control_channel_keashell_write_config/
> tests.dhcp.v4.cc/test_command_control_keashell/run_tests___ubuntu_22_04_v4___test_control_channel_socket_reload_config/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___alpine_3_16_v4___test_control_channel_socket_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___alpine_3_16_v4___test_control_channel_socket_change_socket_during_reconfigure/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___alpine_3_16_v4___test_control_channel_socket_config_set_basic/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___fedora_36_v4___test_control_channel_socket_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___fedora_36_v4___test_control_channel_socket_change_socket_during_reconfigure/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___fedora_36_v4___test_control_channel_socket_config_set_basic/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___ubuntu_22_04_v4___test_control_channel_socket_after_restart_load_config_file/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___ubuntu_22_04_v4___test_control_channel_socket_change_socket_during_reconfigure/
> tests.dhcp.v4.cc/test_command_control_socket/run_tests___ubuntu_22_04_v4___test_control_channel_socket_config_set_basic/
56a102,164
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___alpine_3_16_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___fedora_36_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_change_reserved_address_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_rebind_address_which_reservation_changed_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reconfigure_server_add_reservation_for_host_that_has_lease_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reconfigure_server_with_reservation_of_used_address_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_renew_address_using_different_mac_that_has_been_reserved_during_reconfiguration_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_renew_address_which_reservation_changed_during_reconfigure_memfile_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_MySQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_PostgreSQL_/
> tests.dhcp.v4.reservations/test_hr_conflicts/run_tests___ubuntu_22_04_v4___test_v4_host_reservation_conflicts_reserve_assigned_address_to_different_client_memfile_/
57a166,177
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___alpine_3_16_v4___test_v4_exclude_first_last_24_subnet_23/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___alpine_3_16_v4___test_v4_exclude_first_last_24_subnet_24/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___alpine_3_16_v4___test_v4_exclude_first_last_24_subnet_25_first_half/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___alpine_3_16_v4___test_v4_exclude_first_last_24_subnet_25_second_half/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___fedora_36_v4___test_v4_exclude_first_last_24_subnet_23/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___fedora_36_v4___test_v4_exclude_first_last_24_subnet_24/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___fedora_36_v4___test_v4_exclude_first_last_24_subnet_25_first_half/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___fedora_36_v4___test_v4_exclude_first_last_24_subnet_25_second_half/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___ubuntu_22_04_v4___test_v4_exclude_first_last_24_subnet_23/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___ubuntu_22_04_v4___test_v4_exclude_first_last_24_subnet_24/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___ubuntu_22_04_v4___test_v4_exclude_first_last_24_subnet_25_first_half/
> tests.dhcp.v4/test_exclude_first_last_24/run_tests___ubuntu_22_04_v4___test_v4_exclude_first_last_24_subnet_25_second_half/
  • 71cec391 fix failed to open socket on reconfig
Edited by Andrei Pavel

Merge request reports