GithubHelp home page GithubHelp logo

Comments (10)

dnsmichi avatar dnsmichi commented on May 28, 2024 1

Right, this happens on PostgreSQL only. My previous tests only were with MySQL, this information came in later.

mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat tests/c.conf
object Host "foo" {
  check_command = "dummy"
  vars.foo = "foo"
  vars.bar = "bar"
}

object Host "bar" {
  check_command = "dummy"
  vars.foo = "bar"
  # Missing var.bar
  #var.bar = "foo"
}
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat icinga2.conf

include "constants.conf"
include "zones.conf"
include <itl>
include <plugins>
include <plugins-contrib>
include <manubulon>
include <windows-plugins>
include <nscp>
include "features-enabled/*.conf"
//include_recursive "tests"
include "tests/c.conf"
mbmif /usr/local/icinga2/etc/icinga2 (master *) # icinga2 feature list
Disabled features: compatlog debuglog elasticsearch gelf graphite icingastatus ido-mysql influxdb livestatus logstash opentsdb perfdata statusdata syslog
Enabled features: api checker command ido-pgsql mainlog notification redis
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat /usr/local/icingaweb2/etc/modules/monitoring/backends.ini
...

[icinga2_ido_pgsql]
type = "ido"
resource = "icinga2_ido_pgsql"
disabled = "0"
mbmif /usr/local/icinga2/etc/icinga2 (master *) # cat /usr/local/icingaweb2/etc/resources.ini
...

[icinga2_ido_pgsql]
type = "db"
db = "pgsql"
host = "localhost"
port = "5432"
dbname = "icinga"
username = "icinga"
password = "icinga"

Steps to reproduce

Important: It does not work the other way around.

  • Add dimension, the one which only one host has, bar
  • Add a second dimension which applies to both hosts, foo
  • Stacktrace
Undefined property: stdClass::$foo

#0 /usr/local/share/icingaweb2/modules/cube/library/Cube/Ido/IdoHostStatusCubeRenderer.php(21): Icinga\Application\ApplicationBootstrap->Icinga\Application\{closure}(Integer, String, String, Integer, Array)
#1 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(294): Icinga\Module\Cube\Ido\IdoHostStatusCubeRenderer->renderDimensionLabel(String, Object(stdClass))
#2 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(219): Icinga\Module\Cube\CubeRenderer->beginDimension(String, Object(stdClass))
#3 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(201): Icinga\Module\Cube\CubeRenderer->beginDimensionsUpFrom(String, Object(stdClass))
#4 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(190): Icinga\Module\Cube\CubeRenderer->beginDimensionsForRow(Object(stdClass))
#5 /usr/local/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(176): Icinga\Module\Cube\CubeRenderer->renderRow(Object(stdClass))
#6 /usr/local/share/icingaweb2/modules/cube/library/Cube/Cube.php(290): Icinga\Module\Cube\CubeRenderer->render(Object(Icinga\Web\View))
#7 zend.view:///usr/local/share/icingaweb2/modules/cube/application/views/scripts/index/index.phtml(18): Icinga\Module\Cube\Cube->render(Object(Icinga\Web\View))
#8 /usr/local/share/icingaweb2/library/Icinga/Web/View.php(270): include(String)
#9 /usr/local/share/icingaweb2/library/vendor/Zend/View/Abstract.php(877): Icinga\Web\View->_run(String)
#10 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(904): Zend_View_Abstract->render()
#11 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(925): Zend_Controller_Action_Helper_ViewRenderer->renderScript(String, NULL)
#12 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(964): Zend_Controller_Action_Helper_ViewRenderer->render()
#13 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action/HelperBroker.php(272): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#14 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Action.php(518): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#15 /usr/local/share/icingaweb2/library/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch(String)
#16 /usr/local/share/icingaweb2/library/vendor/Zend/Controller/Front.php(937): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#17 /usr/local/share/icingaweb2/library/Icinga/Application/Web.php(409): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#18 /usr/local/share/icingaweb2/library/Icinga/Application/webrouter.php(104): Icinga\Application\Web->dispatch()
#19 /usr/local/share/icingaweb2/public/index.php(4): require_once(String)
#20 {main}

from icingaweb2-module-cube.

Thomas-Gelf avatar Thomas-Gelf commented on May 28, 2024

That's strange... are you using PostgreSQL or MySQL? And in case you get a full stack trace: could you please share the full output?

from icingaweb2-module-cube.

mateusz-gozdek-sociomantic avatar mateusz-gozdek-sociomantic commented on May 28, 2024

This is also happening to me. I think this is happening when some hosts don't have specific variable defined.

Here is the stacktrace:

Undefined property: stdClass::$lsbdistcodename

#0 /usr/share/icingaweb2/modules/cube/library/Cube/Ido/IdoHostStatusCubeRenderer.php(21): Icinga\Application\ApplicationBootstrap->Icinga\Application\{closure}(8, 'Undefined prope...', '/usr/share/icin...', 21, Array)
#1 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(294): Icinga\Module\Cube\Ido\IdoHostStatusCubeRenderer->renderDimensionLabel('provider', Object(stdClass))
#2 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(219): Icinga\Module\Cube\CubeRenderer->beginDimension('provider', Object(stdClass))
#3 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(201): Icinga\Module\Cube\CubeRenderer->beginDimensionsUpFrom('provider', Object(stdClass))
#4 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(190): Icinga\Module\Cube\CubeRenderer->beginDimensionsForRow(Object(stdClass))
#5 /usr/share/icingaweb2/modules/cube/library/Cube/CubeRenderer.php(176): Icinga\Module\Cube\CubeRenderer->renderRow(Object(stdClass))
#6 /usr/share/icingaweb2/modules/cube/library/Cube/Cube.php(290): Icinga\Module\Cube\CubeRenderer->render(Object(Icinga\Web\View))
#7 zend.view:///usr/share/icingaweb2/modules/cube/application/views/scripts/index/index.phtml(18): Icinga\Module\Cube\Cube->render(Object(Icinga\Web\View))
#8 /usr/share/php/Icinga/Web/View.php(231): include('zend.view:///us...')
#9 /usr/share/icingaweb2/library/vendor/Zend/View/Abstract.php(877): Icinga\Web\View->_run('/usr/share/icin...')
#10 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(904): Zend_View_Abstract->render('index/index.pht...')
#11 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(925): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/index.pht...', NULL)
#12 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/Helper/ViewRenderer.php(964): Zend_Controller_Action_Helper_ViewRenderer->render()
#13 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action/HelperBroker.php(272): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
#14 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action.php(518): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
#15 /usr/share/php/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch('indexAction')
#16 /usr/share/icingaweb2/library/vendor/Zend/Controller/Front.php(937): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#17 /usr/share/php/Icinga/Application/Web.php(389): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#18 /usr/share/php/Icinga/Application/webrouter.php(109): Icinga\Application\Web->dispatch()
#19 /usr/share/icingaweb2/public/index.php(4): require_once('/usr/share/php/...')
#20 {main}

Not tested steps to reproduce:
define two hosts:

object Host "foo" {
  var.foo = "foo"
  var.bar = "bar"
}

object Host "bar"
  var.foo = "bar"
  # Missing var.bar
  #var.bar = "foo"
}

Then add two dimentions in cube: first foo as it's set for both hosts and then for bar. 2nd dimention should crash now.

from icingaweb2-module-cube.

dnsmichi avatar dnsmichi commented on May 28, 2024

I'm not able to reproduce this.

from icingaweb2-module-cube.

voiprodrigo avatar voiprodrigo commented on May 28, 2024

This is also happening to me. Using IcingaWeb 2.5.3, and PostgreSQL

from icingaweb2-module-cube.

voiprodrigo avatar voiprodrigo commented on May 28, 2024

FYI, I reconfigured Icingaweb2 to use Mysql (MariaDB), and the problem went away.

from icingaweb2-module-cube.

buzzdeee avatar buzzdeee commented on May 28, 2024

I don't feel alone anymore. But switching to a new DB backend, just because of this is a no-go. That would be the one and only mysql/mariadb I run. Everything runs happily on PostgreSQL.

from icingaweb2-module-cube.

voiprodrigo avatar voiprodrigo commented on May 28, 2024

@dnsmichi mentioned he could not reproduce. I wonder if it was tested only with MySQL?

from icingaweb2-module-cube.

nbuchwitz avatar nbuchwitz commented on May 28, 2024

I ran today in the same issue, should be fixed with #29

from icingaweb2-module-cube.

nilmerg avatar nilmerg commented on May 28, 2024

Since the related PR is merged >> Closed.

from icingaweb2-module-cube.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.