./sbin/zabbix_server -R log_level_increase="discovery manager"
tail -f /tmp/zabbix_server.log | grep "process_snmp_result() key:"
Create 2 snmp discovery rules with 1 second update interval, with concurrency 1 or unlimited.
Block UDP port for snmp:
sudo iptables -A INPUT -p udp --dport 161 -j DROP
Notice that checks are initiated after 3 seconds one after another:
1370798:20260209:165637.342 [1] In process_snmp_result() key:'get[1.3.6.1.2.1.1.4.1]' host:'' addr:'127.0.0.1' ret:TIMEOUT_ERROR 1370798:20260209:165640.343 [1] In process_snmp_result() key:'get[1.3.6.1.2.1.1.4.0]' host:'' addr:'127.0.0.1' ret:TIMEOUT_ERROR
Change to one rule and IP range 127.0.0.1-2
Notice now it is asynchronous:
1369905:20260209:165527.414 [1] In process_snmp_result() key:'get[1.3.6.1.2.1.1.4.0]' host:'' addr:'127.0.0.1' ret:TIMEOUT_ERROR 1369905:20260209:165527.423 [1] In process_snmp_result() key:'get[1.3.6.1.2.1.1.4.0]' host:'' addr:'127.0.0.2' ret:TIMEOUT_ERROR
Expected:
Before the upgrade 2 discovery rules could be executed by 2 forks in parallel, same parallel behavior is expected.
It should be fixed so that multiple discovery rules could be executed asynchronously by one worker if there is capacity.