Steps I took to reproduce in my environment (example uses pollerd, though I've hit the same issue with collectd):
- Disable all stock poller packages dealing with ICMP
- Create the following poller package:
- Provision a new node and assign it to the node category P-ICMP-1min (but not S-Production) and synchronize
- As a second step, add the S-Production category to the node, and synchronize
Pollerd/Collectd (and perhaps other daemons as well) don't pick up on the node category changes. For example, a node provisioned with just the ICMP service and categorized as in the above two-step workflow will show ICMP as "Not Monitored" because no poller package matches.
Once OpenNMS is restarted, pollerd sees the category changes properly and ICMP will show up as Monitored and be properly polled.
Daemons using catinc-based filters in their configurations should be able to pick up on category changes of a node without requiring a complete OpenNMS restart.
Working branch: https://github.com/OpenNMS/opennms/tree/jira/NMS-4951