The RLOG DB backend tests in FVT were temporarily disabled due to some
paho tests being specially flaky in CI.
In particular, those tests had the common pattern of subscribing to a
topic, immediately publishing to that topic and then waiting for the
response. When in CI and using RLOG, there seems to be more delays in
replication of data, and often this pattern would fail in the
constraint testing enviroment.
there seems to be race conditions related to some tests with sessions
hitting the core and the replicant alternately and rlog.
for intance, if there is some delay in this replication, a new
connection made to the replica with a just-created session in the core
may not have been replicated to the replicant, resulting in a test
failure if it expects the session to be present.
since such replication lags are inherent to the core-replicant
topology, we can try to target only the replicant to avoid seeing this
inconsistent view of the system during the tests.
This parameterizes the Functional Verification Tests (FVTs) that run
in CI to use a replication log (RLOG) role of "replicant" for one of
the nodes. With this addition, our FVTs may explore more scenarios
with data replication.
prior to this cahnge emqx node shutdown is done by init:stop
which might have undesired stop order of the applications
in this change, emqx_machine_terminator is added to stop apps
in defined order and then terminate the node in infinite loop
The serious influence:
authn:
api
authz:
api; api test suit
dashboard:
all closed
lwm2m:
api;
modules:
api(api_topic_metrics, modules_api); test suit(emqx_modules_SUITE)
prometheus:
api
retainer:
api; api test suit
rule_engine:
api: api test suit
telemetry:
api
The serious influence:
authn:
api
authz:
api; api test suit
dashboard:
all closed
lwm2m:
api;
modules:
api(api_topic_metrics, modules_api); test suit(emqx_modules_SUITE)
prometheus:
api
retainer:
api; api test suit
rule_engine:
api: api test suit
telemetry:
api