[OpenNMS/opennms] 52d2c1: NMS-20006: bound local RPC execution with a watchd...

Marshall Massengill via opennms-cvs <[email protected]>
Newsgroups gmane.network.opennms.cvs
Message-ID <OpenNMS/opennms/push/refs/heads/mm/NMS-20006-smoke/[email protected]>
  Branch: refs/heads/mm/NMS-20006-smoke
  Home:   https://github.com/OpenNMS/opennms
  Commit: 52d2c1fe0986d62729acdae3d6cdebee409ac86b
      https://github.com/OpenNMS/opennms/commit/52d2c1fe0986d62729acdae3d6cdebee409ac86b
  Author: Marshall Massengill <[email protected]>
  Date:   2026-07-20 (Mon, 20 Jul 2026)

  Changed paths:
    M core/ipc/grpc/server/src/main/java/org/opennms/core/ipc/grpc/server/OpennmsGrpcServer.java
    M core/ipc/rpc/api/pom.xml
    A core/ipc/rpc/api/src/main/java/org/opennms/core/rpc/api/LocalExecutionWatchdog.java
    M core/ipc/rpc/api/src/main/java/org/opennms/core/rpc/api/RpcExceptionUtils.java
    A core/ipc/rpc/api/src/test/java/org/opennms/core/rpc/api/LocalExecutionWatchdogTest.java
    A core/ipc/rpc/api/src/test/java/org/opennms/core/rpc/api/RpcExceptionUtilsTest.java
    M core/ipc/rpc/camel/src/main/java/org/opennms/core/rpc/camel/CamelRpcClientFactory.java
    A core/ipc/rpc/camel/src/test/java/org/opennms/core/rpc/camel/LocalRpcWatchdogTest.java
    M core/ipc/rpc/kafka/src/main/java/org/opennms/core/ipc/rpc/kafka/KafkaRpcClientFactory.java
    A core/ipc/rpc/kafka/src/test/java/org/opennms/core/ipc/rpc/kafka/KafkaLocalRpcWatchdogTest.java
    M core/snmp/proxy-rpc-impl/pom.xml
    A core/snmp/proxy-rpc-impl/src/test/java/org/opennms/netmgt/snmp/proxy/common/SnmpRequestTtlResolutionTest.java
    M docs/modules/reference/pages/configuration/ttl-rpc.adoc
    A features/collection/client-rpc/src/test/java/org/opennms/netmgt/collection/client/rpc/CollectorRequestTtlResolutionTest.java

  Log Message:
  -----------
  NMS-20006: bound local RPC execution with a watchdog decoupled from the TTL

Local (same-location) RPC execution is bounded again so a module future
that never completes cannot wedge its caller (the NMS-19951 goal), but
the bound is no longer the request TTL: it is max(floor, TTL), with the
floor configurable via the org.opennms.core.ipc.rpc.local.watchdog.timeout
system property (default 30 minutes, 0 disables). TTL values resolved
from snmp-config, service parameters, or the collection interval can
loosen the bound but never tighten it, so slow-but-completing local
operations are unaffected by configuration intended for the Minion path.

The watchdog applies uniformly to the Camel, Kafka, and gRPC client
factories' local shortcuts. Expiry fails the caller with
RequestTimedOutException (so collections report CollectionTimedOut
rather than "Unexpected exception"), cancels the module future, and
logs a warning. RpcExceptionUtils now also maps bare
java.util.concurrent.TimeoutException to onTimedOut.

Also adds TTL-resolution regression tests pinning which configured value
lands on the inner SNMP request (snmp-config ttl overrides the service
parameter) and the outer collector request (the ttl service parameter
overrides the interval; snmp-config plays no role at that layer).



To unsubscribe from these emails, change your notification settings at https://github.com/OpenNMS/opennms/settings/notifications


_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list

To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.