Discussion:
[Check_mk (english)] CMK 1.5 (livestatus) + gcc8 on armhf: some things are not working
c***@martin.sperl.org
2018-10-28 11:41:48 UTC
Permalink
Hi!

It seems as if livestatus binaries of live-status (as in check_mk 1.5.x) are having issues
when compiled on armhf with gcc 8.1.0 and 8.2.0 (probably also with 8.0.0, but I have not tested).

It effects hosts that have dots in their name
* kvm is not impacted
* kvm.intern is impacted

On the UI/webpage they are impacted as follows:
* the action-menu shows empty (especially the url /cmk/check_mk/ajax_popup_action_menu.py returns empty)
* host-views do not show entries (/cmk/check_mk/view.py?host=kvm.intern&site=cmk&view_name=host does not show a list of services)
* services pages shown empty (/cmk/check_mk/view.py?host=kvm.intern&service=...&site=cmk&view_name=service)

It works fine when compiled with gcc 7.3.0.

To go lower level/debugging:

The following script:
#! /bin/sh

for x in kvm kvm.intern; do
echo "Processing: $x"
echo "=================“
# this request is equivalent to the request of ajax_popup_action_menu.py to livestatus)
echo -n "GET hosts\nColumns: host_custom_variable_names host_action_url_expanded host_filename host_check_command host_active_checks_enabled host_perf_data host_pnpgraph_present host_custom_variable_values host_name host_check_type host_address host_notes_url_expanded\nFilter: host_name = $x\nLocaltime: 1540640697\nOutputFormat: python\nKeepAlive: on\nResponseHeader: fixed16\nColumnHeaders: off\n\n" \
| nc.openbsd -w 1 -U /omd/sites/cmk/tmp/run/live
done

echo "list hosts"
echo "================="
echo -n "GET hosts\nColumns: host_name host_check_type host_address\nLocaltime: 1540640697\nOutputFormat: python\nKeepAlive: on\nResponseHeader: fixed16\nColumnHeaders: off\n\n" \
| nc.openbsd -w 1 -U /omd/sites/cmk/tmp/run/live

gives the following output on gcc8.2.0 compiled livestatus:
OMD[cmk]:~$ sh /tmp/test.sh
Processing: kvm
=================
200 506
[[[u"ADDRESS_4",u"ADDRESS_6",u"TAGS",u"FILENAME",u"ADDRESS_FAMILY"],u"/cmk/pnp4nagios/index.php/graph?host=kvm&srv=_HOST_' class='tips' rel='/cmk/pnp4nagios/index.php/popup?host=kvm&srv=_HOST_",u"/wato/hosts.mk",u"check-mk-host-ping!-w 200.00,80.00% -c 500.00,100.00%",1,u"rta=0.586ms;200.000;500.000;0; pl=0%;80;100;; rtmax=0.629ms;;;; rtmin=0.541ms;;;;",1,[u"10.10.10.250",u"",u"/wato/ cmk-agent ip-v4 ip-v4-only lan no-snmp prod site:cmk tcp wato",u"/wato/hosts.mk",u"4"],u"kvm",0,u"10.10.10.250",u""]]
Processing: kvm.intern
=================
200 3
[]
list hosts
=================
200 64
[[u"kvm",0,u"10.10.10.250"],
[u"kvm.intern",0,u"10.10.10.250”]]

on gcc 7.3.0 compiled:
Processing: kvm
=================
200 509
[[[u"ADDRESS_4",u"ADDRESS_6",u"TAGS",u"FILENAME",u"ADDRESS_FAMILY"],u"/cmk/pnp4nagios/index.php/graph?host=kvm&srv=_HOST_' class='tips' rel='/cmk/pnp4nagios/index.php/popup?host=kvm&srv=_HOST_",u"/wato/hosts.mk",u"check-mk-host-ping!-w 200.00,80.00% -c 500.00,100.00%",1,u"rta=0.581ms;200.000;500.000;0; pl=0%;80;100;; rtmax=0.624ms;;;; rtmin=0.535ms;;;;",1,[u"10.10.10.250",u"",u"/wato/ cmk-agent ip-v4 ip-v4-only lan no-snmp prod site:cmk tcp wato",u"/wato/hosts.mk",u"4"],u"kvm",0,u"10.10.10.250",u""]]
Processing: kvm.intern
=================
200 530
[[[u"ADDRESS_4",u"ADDRESS_6",u"TAGS",u"FILENAME",u"ADDRESS_FAMILY"],u"/cmk/pnp4nagios/index.php/graph?host=kvm.intern&srv=_HOST_' class='tips' rel='/cmk/pnp4nagios/index.php/popup?host=kvm.intern&srv=_HOST_",u"/wato/hosts.mk",u"check-mk-host-ping!-w 200.00,80.00% -c 500.00,100.00%",1,u"rta=0.477ms;200.000;500.000;0; pl=0%;80;100;; rtmax=0.568ms;;;; rtmin=0.436ms;;;;",1,[u"10.10.10.250",u"",u"/wato/ cmk-agent ip-v4 ip-v4-only lan no-snmp prod site:cmk tcp wato",u"/wato/hosts.mk",u"4"],u"kvm.intern",0,u"10.10.10.250",u""]]
list hosts
=================
200 64
[[u"kvm",0,u"10.10.10.250"],
[u"kvm.intern",0,u"10.10.10.250”]]

You see that we find kvm.intern in livestatus filtered by host only when it is compiled with gcc 7.3.

I have not seen this with precompiled debian packages for x86_64 from the cmk website - actually the docker images...
But I assume that those are probably compiled with gcc 7 (possibly 7.3.0) so it may not show up as an issue there
(or it is an architecture/32bit/... issue).


Martin

Loading...