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

Reply via email to