Fixed ConfD job db_start crash in failover/redundancy scenarios when runtime node info is unavailable

Details

Detail name Value
Changelog Number 27664
Type Bug
Status Open
Affected Versions Exasol 8.14.0

Description

In some failure scenarios, when runtime node info is unavailable, internal routine db_setup_dbram could fail and make DB unable to start, receiving the following stack trace:

Traceback (most recent call last):
  File "/opt/exasol/cos-8.48.13/lib/python3.10/site-packages/libconfd/jobs/job.py", line 2119, in exec_cmd
    func_res = func(*args, **func_kwargs)
  File "/opt/exasol/cos-8.48.13/lib/python3.10/site-packages/libconfd/jobs/db_jobs.py", line 673, in _start_db
    db_setup_dbram(
  File "/opt/exasol/cos-8.48.13/lib/python3.10/site-packages/libconfd/common/database.py", line 278, in db_setup_dbram
    node_mem = int(ph.getClusterNodeInfo((0, node_map[nname]))["Memory"]) // 1048576

Workaround

No workaround.

Fix

  • Fixed ConfD job db_start crash in failover/redundancy scenarios when runtime node info is unavailable.
  • Hardened DB RAM calculation in db_setup_dbram():
  • skip nodes when getClusterNodeInfo() returns non-dict (e.g. -1)
  • skip nodes missing "Memory" data
  • log warnings for skipped nodes