Is there anyone familiar with threads and signal delivery (with C++ if that makes a difference..) with time to look at a problem with an icinga2 update, please?
Port diff for 2.11.1 (which shows the problem) inline below, to save time you can preinstall deps with "pkg_add cmake ninja mariadb-client boost-md monitoring-plugins postgresql-client bison". Build with "DEBUG=-g make install" if you want symbols. Quick instructions to run it in the foreground with debug logging for a test - there's no need to touch config files: # install -d -o _icinga /var/run/icinga2 # icinga2 daemon -x debug What is supposed to happen is that after loading config, the worker process signals the "umbrella process" with USR2 to indicate that load is complete (at which point it should start main processing). But currently it makes no progress after printing notice/cli: Notifying umbrella process (PID XXX) about the config loading success notice/cli: Waiting for the umbrella process to let us doing the actual work An upstream developer has pointed at various relevant code lines in https://github.com/Icinga/icinga2/issues/7505#issuecomment-542624077 showing where it gets stuck, the flag variable, the signal handler itself, and setup doing sigaction() - the "umbrella" process doesn't seem to receive the USR2. This was changed in a large "rework reload handling" commit https://github.com/Icinga/icinga2/commit/844e821cd1fcd49270592ff8390728fb322e744a Along with the code in that commit there's an English description of how it is now supposed to work (and does work on OSX/Linux). Upstream do care about portability (and have helped us before) but don't know why this is failing, I don't really have any idea where to even start looking, any help would be much appreciated.. Index: Makefile =================================================================== RCS file: /cvs/ports/net/icinga/core2/Makefile,v retrieving revision 1.96 diff -u -p -r1.96 Makefile --- Makefile 18 Jul 2019 16:01:05 -0000 1.96 +++ Makefile 17 Oct 2019 19:46:55 -0000 @@ -6,7 +6,7 @@ COMMENT-main = network monitoring system COMMENT-mysql = MySQL support for icinga2 COMMENT-pgsql = PostgreSQL support for icinga2 -V = 2.10.5 +V = 2.11.1 EPOCH = 0 GH_ACCOUNT = Icinga GH_PROJECT = icinga2 @@ -14,7 +14,6 @@ GH_TAGNAME = v$V PKGNAME-main = icinga2-$V PKGNAME-mysql = icinga2-ido-mysql-$V PKGNAME-pgsql = icinga2-ido-pgsql-$V -REVISION-main = 0 SHARED_LIBS += base 0.0 # 2.6 SHARED_LIBS += checker 0.0 # 2.6 @@ -42,9 +41,10 @@ HOMEPAGE = https://icinga.com/products/i PERMIT_PACKAGE = Yes WANTLIB += ${COMPILER_LIBCXX} boost_atomic-mt boost_chrono-mt -WANTLIB += boost_date_time-mt boost_program_options-mt boost_regex-mt +WANTLIB += boost_context-mt boost_coroutine-mt boost_date_time-mt +WANTLIB += boost_filesystem-mt boost_program_options-mt boost_regex-mt WANTLIB += boost_system-mt boost_thread-mt c crypto curses edit -WANTLIB += m ssl yajl +WANTLIB += m ssl MODULES = devel/cmake @@ -55,12 +55,12 @@ BUILD_DEPENDS = devel/bison MULTI_PACKAGES = -main -mysql -pgsql LIB_DEPENDS-main = ${LIB_DEPENDS} \ - devel/boost \ - devel/libyajl + devel/boost,-md RUN_DEPENDS-main = net/monitoring-plugins -RUN_DEPENDS = ${BASE_PKGPATH},-main=$Vv${EPOCH} # default for subpackages -WANTLIB-mysql += ${COMPILER_LIBCXX} m mysqlclient +RUN_DEPENDS = ${BASE_PKGPATH},-main=${FULLPKGNAME-main:S/icinga2-//} + +WANTLIB-mysql += ${COMPILER_LIBCXX} m mariadb LIB_DEPENDS-mysql = ${LIB_DEPENDS} \ databases/mariadb Index: distinfo =================================================================== RCS file: /cvs/ports/net/icinga/core2/distinfo,v retrieving revision 1.36 diff -u -p -r1.36 distinfo --- distinfo 26 May 2019 14:49:39 -0000 1.36 +++ distinfo 17 Oct 2019 19:46:55 -0000 @@ -1,2 +1,2 @@ -SHA256 (icinga2-2.10.5.tar.gz) = yWXCtvppf7tdh8koeYoo8pMFCoR1tqRtco3D8iKxMZo= -SIZE (icinga2-2.10.5.tar.gz) = 5141193 +SHA256 (icinga2-2.11.1.tar.gz) = MOO0jDbcVH4e5sy8Tx57/rJ1dEnstf6gcP+KWiqbs3c= +SIZE (icinga2-2.11.1.tar.gz) = 7475972 Index: patches/patch-etc_icinga2_conf_d_groups_conf =================================================================== RCS file: /cvs/ports/net/icinga/core2/patches/patch-etc_icinga2_conf_d_groups_conf,v retrieving revision 1.1 diff -u -p -r1.1 patch-etc_icinga2_conf_d_groups_conf --- patches/patch-etc_icinga2_conf_d_groups_conf 22 Nov 2014 00:13:03 -0000 1.1 +++ patches/patch-etc_icinga2_conf_d_groups_conf 17 Oct 2019 19:46:55 -0000 @@ -1,6 +1,8 @@ -$OpenBSD: patch-etc_icinga2_conf_d_groups_conf,v 1.1 2014/11/22 00:13:03 sthen Exp $ ---- etc/icinga2/conf.d/groups.conf.orig Fri Nov 21 21:30:11 2014 -+++ etc/icinga2/conf.d/groups.conf Fri Nov 21 21:31:05 2014 +$OpenBSD$ + +Index: etc/icinga2/conf.d/groups.conf +--- etc/icinga2/conf.d/groups.conf.orig ++++ etc/icinga2/conf.d/groups.conf @@ -2,6 +2,12 @@ * Host group examples. */ Index: patches/patch-etc_icinga2_conf_d_hosts_conf =================================================================== RCS file: /cvs/ports/net/icinga/core2/patches/patch-etc_icinga2_conf_d_hosts_conf,v retrieving revision 1.1 diff -u -p -r1.1 patch-etc_icinga2_conf_d_hosts_conf --- patches/patch-etc_icinga2_conf_d_hosts_conf 22 Nov 2014 00:13:03 -0000 1.1 +++ patches/patch-etc_icinga2_conf_d_hosts_conf 17 Oct 2019 19:46:55 -0000 @@ -1,10 +1,12 @@ -$OpenBSD: patch-etc_icinga2_conf_d_hosts_conf,v 1.1 2014/11/22 00:13:03 sthen Exp $ ---- etc/icinga2/conf.d/hosts.conf.orig Fri Nov 21 21:30:11 2014 -+++ etc/icinga2/conf.d/hosts.conf Fri Nov 21 21:31:13 2014 +$OpenBSD$ + +Index: etc/icinga2/conf.d/hosts.conf +--- etc/icinga2/conf.d/hosts.conf.orig ++++ etc/icinga2/conf.d/hosts.conf @@ -24,7 +24,7 @@ object Host NodeName { address6 = "::1" - /* Set custom attribute `os` for hostgroup assignment in `groups.conf`. */ + /* Set custom variable `os` for hostgroup assignment in `groups.conf`. */ - vars.os = "Linux" + vars.os = "OpenBSD" Index: patches/patch-etc_icinga2_conf_d_services_conf =================================================================== RCS file: /cvs/ports/net/icinga/core2/patches/patch-etc_icinga2_conf_d_services_conf,v retrieving revision 1.3 diff -u -p -r1.3 patch-etc_icinga2_conf_d_services_conf --- patches/patch-etc_icinga2_conf_d_services_conf 16 Nov 2015 20:29:55 -0000 1.3 +++ patches/patch-etc_icinga2_conf_d_services_conf 17 Oct 2019 19:46:55 -0000 @@ -1,12 +1,14 @@ -$OpenBSD: patch-etc_icinga2_conf_d_services_conf,v 1.3 2015/11/16 20:29:55 sthen Exp $ ---- etc/icinga2/conf.d/services.conf.orig Mon Nov 16 09:57:03 2015 -+++ etc/icinga2/conf.d/services.conf Mon Nov 16 17:02:41 2015 +$OpenBSD$ + +Index: etc/icinga2/conf.d/services.conf +--- etc/icinga2/conf.d/services.conf.orig ++++ etc/icinga2/conf.d/services.conf @@ -42,14 +42,14 @@ apply Service "ping6" { /* * Apply the `ssh` service to all hosts * with the `address` attribute defined and -- * the custom attribute `os` set to `Linux`. -+ * the custom attribute `os` set to `Linux` or `OpenBSD`. +- * the custom variable `os` set to `Linux`. ++ * the custom variable `os` set to `Linux` or `OpenBSD`. */ apply Service "ssh" { import "generic-service" Index: patches/patch-etc_icinga2_constants_conf_cmake =================================================================== RCS file: /cvs/ports/net/icinga/core2/patches/patch-etc_icinga2_constants_conf_cmake,v retrieving revision 1.1 diff -u -p -r1.1 patch-etc_icinga2_constants_conf_cmake --- patches/patch-etc_icinga2_constants_conf_cmake 16 Nov 2015 12:19:12 -0000 1.1 +++ patches/patch-etc_icinga2_constants_conf_cmake 17 Oct 2019 19:46:55 -0000 @@ -1,6 +1,8 @@ -$OpenBSD: patch-etc_icinga2_constants_conf_cmake,v 1.1 2015/11/16 12:19:12 sthen Exp $ ---- etc/icinga2/constants.conf.cmake.orig Mon Nov 16 11:46:58 2015 -+++ etc/icinga2/constants.conf.cmake Mon Nov 16 11:49:15 2015 +$OpenBSD$ + +Index: etc/icinga2/constants.conf.cmake +--- etc/icinga2/constants.conf.cmake.orig ++++ etc/icinga2/constants.conf.cmake @@ -26,3 +26,6 @@ const ZoneName = NodeName /* Secret key for remote node tickets */ Index: patches/patch-etc_icinga2_scripts_mail-host-notification_sh =================================================================== RCS file: patches/patch-etc_icinga2_scripts_mail-host-notification_sh diff -N patches/patch-etc_icinga2_scripts_mail-host-notification_sh --- patches/patch-etc_icinga2_scripts_mail-host-notification_sh 16 Nov 2018 13:01:04 -0000 1.6 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,31 +0,0 @@ -$OpenBSD: patch-etc_icinga2_scripts_mail-host-notification_sh,v 1.6 2018/11/16 13:01:04 martijn Exp $ -Index: etc/icinga2/scripts/mail-host-notification.sh ---- etc/icinga2/scripts/mail-host-notification.sh.orig -+++ etc/icinga2/scripts/mail-host-notification.sh -@@ -1,4 +1,4 @@ --#!/usr/bin/env bash -+#!/bin/ksh - # - # Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/) - # Except of function urlencode which is Copyright (C) by Brian White ([email protected]) used under MIT license -@@ -51,11 +51,15 @@ Error() { - } - - urlencode() { -- local LANG=C i c e='' -- for ((i=0;i<${#1};i++)); do -- c=${1:$i:1} -- [[ "$c" =~ [a-zA-Z0-9\.\~\_\-] ]] || printf -v c '%%%02X' "'$c" -- e+="$c" -+ local LANG=C i c e s="$1" -+ i=0 -+ -+ while [ $i -lt ${#1} ]; do -+ [ "$i" -eq 0 ] || s="${s#?}" -+ c=${s%"${s#?}"} -+ [ -z "${c#[[:alnum:].~_-]}" ] || c=$(printf '%%%02X' "'$c") -+ e="${e}${c}" -+ i=$((i + 1)) - done - echo "$e" - } Index: patches/patch-etc_icinga2_scripts_mail-service-notification_sh =================================================================== RCS file: patches/patch-etc_icinga2_scripts_mail-service-notification_sh diff -N patches/patch-etc_icinga2_scripts_mail-service-notification_sh --- patches/patch-etc_icinga2_scripts_mail-service-notification_sh 16 Nov 2018 13:01:04 -0000 1.6 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,32 +0,0 @@ -$OpenBSD: patch-etc_icinga2_scripts_mail-service-notification_sh,v 1.6 2018/11/16 13:01:04 martijn Exp $ - -Index: etc/icinga2/scripts/mail-service-notification.sh ---- etc/icinga2/scripts/mail-service-notification.sh.orig -+++ etc/icinga2/scripts/mail-service-notification.sh -@@ -1,4 +1,4 @@ --#!/usr/bin/env bash -+#!/bin/ksh - # - # Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/) - # Except of function urlencode which is Copyright (C) by Brian White ([email protected]) used under MIT license -@@ -53,11 +53,15 @@ Error() { - } - - urlencode() { -- local LANG=C i c e='' -- for ((i=0;i<${#1};i++)); do -- c=${1:$i:1} -- [[ "$c" =~ [a-zA-Z0-9\.\~\_\-] ]] || printf -v c '%%%02X' "'$c" -- e+="$c" -+ local LANG=C i c e s="$1" -+ i=0 -+ -+ while [ $i -lt ${#1} ]; do -+ [ "$i" -eq 0 ] || s="${s#?}" -+ c=${s%"${s#?}"} -+ [ -z "${c#[[:alnum:].~_-]}" ] || c=$(printf '%%%02X' "'$c") -+ e="${e}${c}" -+ i=$((i + 1)) - done - echo "$e" - } Index: patches/patch-lib_base_library_cpp =================================================================== RCS file: /cvs/ports/net/icinga/core2/patches/patch-lib_base_library_cpp,v retrieving revision 1.1 diff -u -p -r1.1 patch-lib_base_library_cpp --- patches/patch-lib_base_library_cpp 2 Aug 2018 00:33:09 -0000 1.1 +++ patches/patch-lib_base_library_cpp 17 Oct 2019 19:46:55 -0000 @@ -3,7 +3,7 @@ $OpenBSD: patch-lib_base_library_cpp,v 1 Index: lib/base/library.cpp --- lib/base/library.cpp.orig +++ lib/base/library.cpp -@@ -37,6 +37,8 @@ Library::Library(const String& name) +@@ -20,6 +20,8 @@ Library::Library(const String& name) path = name + ".dll"; #elif defined(__APPLE__) path = "lib" + name + "." + Application::GetAppSpecVersion() + ".dylib"; Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/net/icinga/core2/pkg/PLIST-main,v retrieving revision 1.29 diff -u -p -r1.29 PLIST-main --- pkg/PLIST-main 18 Jul 2019 16:01:05 -0000 1.29 +++ pkg/PLIST-main 17 Oct 2019 19:46:55 -0000 @@ -27,9 +27,9 @@ share/doc/icinga2/NEWS share/doc/icinga2/README.md share/doc/icinga2/markdown/ share/doc/icinga2/markdown/01-about.md -share/doc/icinga2/markdown/02-getting-started.md +share/doc/icinga2/markdown/02-installation.md share/doc/icinga2/markdown/03-monitoring-basics.md -share/doc/icinga2/markdown/04-configuring-icinga-2.md +share/doc/icinga2/markdown/04-configuration.md share/doc/icinga2/markdown/05-service-monitoring.md share/doc/icinga2/markdown/06-distributed-monitoring.md share/doc/icinga2/markdown/07-agent-based-monitoring.md @@ -53,6 +53,8 @@ share/doc/icinga2/markdown/24-appendix.m share/doc/icinga2/markdown/images/ share/doc/icinga2/markdown/images/addons/ share/doc/icinga2/markdown/images/addons/dashing_icinga2.png +share/doc/icinga2/markdown/images/addons/icinga_certificate_monitoring.png +share/doc/icinga2/markdown/images/addons/icinga_reporting.png share/doc/icinga2/markdown/images/addons/icingaweb2_businessprocess.png share/doc/icinga2/markdown/images/addons/icingaweb2_grafana.png share/doc/icinga2/markdown/images/addons/icingaweb2_graphite.png @@ -61,20 +63,30 @@ share/doc/icinga2/markdown/images/advanc share/doc/icinga2/markdown/images/advanced-topics/flapping-state-graph.png share/doc/icinga2/markdown/images/advanced-topics/icinga2_external_checks_freshness_icingaweb2.png share/doc/icinga2/markdown/images/advanced-topics/icingaweb2_downtime_handled.png +share/doc/icinga2/markdown/images/api/ +share/doc/icinga2/markdown/images/api/icinga2_api_powershell_ise.png +share/doc/icinga2/markdown/images/configuration/ +share/doc/icinga2/markdown/images/configuration/icinga_web_local_server.png +share/doc/icinga2/markdown/images/development/ +share/doc/icinga2/markdown/images/development/windows_boost_build_dev_cmd.png +share/doc/icinga2/markdown/images/development/windows_builds_gitlab_pipeline.png +share/doc/icinga2/markdown/images/development/windows_powershell_posh_git.png +share/doc/icinga2/markdown/images/development/windows_visual_studio_installer_01.png +share/doc/icinga2/markdown/images/development/windows_visual_studio_installer_02.png +share/doc/icinga2/markdown/images/development/windows_visual_studio_installer_03.png +share/doc/icinga2/markdown/images/development/windows_visual_studio_tabs_c++.png share/doc/icinga2/markdown/images/distributed-monitoring/ -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_endpoints.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_roles.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_scenarios_ha_master_clients.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_scenarios_master_clients.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_scenarios_master_satellite_client.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_top_down_command_endpoint.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_top_down_config_sync.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_agent_checks_command_endpoint.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_endpoints.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_roles.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_satellite_config_sync.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_scenario_ha_masters_with_agents.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_scenarios_master_satellites_agents.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_scenarios_master_with_agents.png +share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_monitoring_zones.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_windows_client_disk_icingaweb2.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_windows_nscp.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_windows_nscp_api_drivesize_icingaweb2.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_windows_nscp_counter_icingaweb2.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_distributed_zones.png -share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_cmd_admin_net_start_stop.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_running_service.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_01.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_installer_02.png @@ -96,11 +108,11 @@ share/doc/icinga2/markdown/images/distri share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_no_ticket.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_06_finish_with_ticket.png share/doc/icinga2/markdown/images/distributed-monitoring/icinga2_windows_setup_wizard_examine_config.png -share/doc/icinga2/markdown/images/getting-started/ -share/doc/icinga2/markdown/images/getting-started/mariadb-centos7.png -share/doc/icinga2/markdown/images/getting-started/nano-syntax.png -share/doc/icinga2/markdown/images/getting-started/postgr-import-ido.png -share/doc/icinga2/markdown/images/getting-started/vim-syntax.png +share/doc/icinga2/markdown/images/installation/ +share/doc/icinga2/markdown/images/installation/mariadb-centos7.png +share/doc/icinga2/markdown/images/installation/nano-syntax.png +share/doc/icinga2/markdown/images/installation/postgr-import-ido.png +share/doc/icinga2/markdown/images/installation/vim-syntax.png share/doc/pkg-readmes/${PKGSTEM} share/examples/icinga2/ share/examples/icinga2/bash_completion.d/ Index: pkg/PLIST-mysql =================================================================== RCS file: /cvs/ports/net/icinga/core2/pkg/PLIST-mysql,v retrieving revision 1.9 diff -u -p -r1.9 PLIST-mysql --- pkg/PLIST-mysql 2 Aug 2018 00:33:09 -0000 1.9 +++ pkg/PLIST-mysql 17 Oct 2019 19:46:55 -0000 @@ -9,6 +9,7 @@ share/icinga2-ido-mysql/schema/mysql.sql share/icinga2-ido-mysql/schema/upgrade/ share/icinga2-ido-mysql/schema/upgrade/2.0.2.sql share/icinga2-ido-mysql/schema/upgrade/2.1.0.sql +share/icinga2-ido-mysql/schema/upgrade/2.11.0.sql share/icinga2-ido-mysql/schema/upgrade/2.2.0.sql share/icinga2-ido-mysql/schema/upgrade/2.3.0.sql share/icinga2-ido-mysql/schema/upgrade/2.4.0.sql
