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