Symptoms

The /tmp/watchdog_instance_psa_services.err log file on POA Watchdog server grows too fast consuming too much diskspace, this leads to fast diskspace exhausting.

The log is filled fast with the following error message:

ERROR:  operator does not exist: character varying = integer at character 467
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
STATEMENT: SELECT em.protocol, em.hostname , em.port, emp_url_path.value AS url_path, s.db_hostname,
db.name AS dbname, u.name AS username, u.password FROM dbm_databases db JOIN dbm_provide_info pi
.....

The same messages may quickly fill the system log /var/lib/pgsql/9.0/data/pg_log/postgresql-nnn.log of the PostgreSQL server on POA for Linux Database Server.

Note: the problem appears only if PostgreSQL 9.x is installed on the POA Watchdog server.

Resolution

Correct the /usr/libexec/watchdog/integration/PSA.pm file on the POA Watchdog server - change the following piece of code

$myLittleAdminRows = query(
  "SELECT em.protocol, em.hostname , em.port, emp_url_path.value AS url_path, " .
  "s.db_hostname, db.name AS dbname, u.name AS username, u.password " .
  "FROM dbm_databases db " .
  "JOIN dbm_provide_info pi on pi.provide_id = db.provide_id " .
  "JOIN dbm_services s ON pi.service_id = s.service_id " .
  "JOIN dbm_users u ON db.default_user_id = u.user_id " .
  "JOIN dbm_external_manager_parameters emp_sc_id ON emp_sc_id.name = 'emp.sc_id' AND emp_sc_id.value = s.sc_id " .
  "JOIN dbm_external_manager_parameters emp_url_path ON emp_sc_id.em_id=emp_url_path.em_id " .
  "AND emp_url_path.name = 'url_path' JOIN dbm_external_managers em ON em.em_id = emp_sc_id.em_id " .
  "WHERE db.state='a'"

to

$myLittleAdminRows = query(
  "SELECT em.protocol, em.hostname , em.port, emp_url_path.value AS url_path, " .
  "s.db_hostname, db.name AS dbname, u.name AS username, u.password " .
  "FROM dbm_databases db " .
  "JOIN dbm_provide_info pi on pi.provide_id = db.provide_id " .
  "JOIN dbm_services s ON pi.service_id = s.service_id " .
  "JOIN dbm_users u ON db.default_user_id = u.user_id " .
  "JOIN dbm_external_manager_parameters emp_sc_id ON emp_sc_id.name = CAST ('emp.sc_id' as TEXT) " .
  "AND emp_sc_id.value = CAST (s.sc_id as TEXT) JOIN dbm_external_manager_parameters emp_url_path " .
  "ON emp_sc_id.em_id=emp_url_path.em_id AND emp_url_path.name = 'url_path' " .
  "JOIN dbm_external_managers em ON em.em_id = emp_sc_id.em_id " .
  "WHERE db.state='a'"

Cause

The /usr/libexec/watchdog/integration/PSA.pm file on the POA Watchdog server contains SQL query which cannot be executed on PostgreSQL 9.x server (it is fine for PostgreSQL 8.x server).

Internal content