Skip to content

DAOS-19396 test: suite.yaml fix libfabric warning log routing - #19109

Draft
kccain wants to merge 2 commits into
masterfrom
kccain/daos_19396_config
Draft

kccain wants to merge 2 commits into
masterfrom
kccain/daos_19396_config

Conversation

@kccain

@kccain kccain commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Before this change, daos_test invocations from suite.py/yaml relied on FI_LOG_LEVEL and D_LOG_STDERR_IN_LOG environment variables in an attempt to capture libfabric-level warnings. However, that configuration seems to be ineffective - i.e., it is seen in test results that no such warnings are saved in engine logs.

With this change, HG_LOG_SUBSYS (with value including 'libfabric') and HG_LOG_LEVEL environnment variables are set to correctly capture libfabric warnings - e.g., to log entries like the following:

mercury->libfabric [warning] ... rxm_handle_error() fi_eq_readerr ...

Test-tag: daos_core_test
Skip-unit-tests: true
Skip-fault-injection-test: true
Skip-test-rpms: true

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

Before this change, daos_test invocations from suite.py/yaml
relied on FI_LOG_LEVEL and D_LOG_STDERR_IN_LOG environment
variables in an attempt to capture libfabric-level warnings.
However, that configuration seems to be ineffective - i.e.,
it is seen in test results that no such warnings are saved
in engine logs.

With this change, HG_LOG_SUBSYS (with value including 'libfabric')
and HG_LOG_LEVEL environnment variables are set to correctly
capture libfabric warnings - e.g., to log entries like the following:

mercury->libfabric [warning] ... rxm_handle_error() fi_eq_readerr ...

Test-tag: daos_core_test
Skip-unit-tests: true
Skip-fault-injection-test: true
Skip-test-rpms: true

Signed-off-by: Kenneth Cain <kenneth.cain@hpe.com>
@github-actions

Copy link
Copy Markdown

Ticket title is 'daos_test/suite.py:DaosCoreTest.test_daos_rebuild_ec - pool reintegrate timeout'
Status is 'Awaiting backport'
Labels: '2.6.5.p2rc1,pr_test,request_for_2.8.2,testp1'
https://daosio.atlassian.net/browse/DAOS-19396

and is never invalidated on a transient SWIM death+restart. RPCs then take
the cache-hit path and reuse a possibly-stale endpoint from the peer's
previous incarnation, which can silently fail (e.g. a CORPC timing out to a
just-restarted rank) with no CaRT-level indication of the cause.

Add a diagnostic-only D_WARN, emitted when a peer's incarnation increases
(i.e. it restarted) while a cached address for it is still present for
ctx0/tag0. The check is read-only and does not change behavior.

The incarnation increase can be observed on either of two paths, and which
one records it first is a race:
  - crt_swim_set_member_state() (SWIM gossip), and
  - crt_swim_rank_check() (primary-group membership / rejoin update).
The warning is emitted from both sites so it fires regardless of which path
observes the restart first. The gossip-path check is gated on a real
incarnation increase and a transition to ALIVE to keep it low-volume (once
per restart, not per ping).

This is intended to be combined with HG_LOG_SUBSYS/HG_LOG_LEVEL and the
existing RPC timeout logs to correlate a stale-endpoint reuse at runtime.

Test-tag: daos_core_test
Skip-unit-tests: true
Skip-fault-injection-test: true
Skip-test-rpms: true

Signed-off-by: Kenneth Cain <kenneth.cain@hpe.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant