Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-17607

Unreachable poller is too busy due to SNMP checks retry attempt

XMLWordPrintable

    • Sprint 63 (Apr 2020), Sprint 64 (May 2020)
    • 0.25

      Retry was added under ZBX-8538, however after retry was made and check is moved to unreachable poller there is no reason to retry such checks as it results in 2 * Timeout per check which makes unreachable poller busier.

      Timeout=7

       60522:20200415:155808.673 In zbx_snmp_get_values() num:1 level:0
       60522:20200415:155822.686 zbx_snmp_get_values() snmp_synch_response() status:2 s_snmp_errno:-24 errstat:-1 mapping_num:1
      

      example fix but better to pass retry count as parameter:

      diff --git a/src/zabbix_server/poller/checks_snmp.c b/src/zabbix_server/poller/checks_snmp.c
      index 58c2d760e5..183e83782c 100644
      --- a/src/zabbix_server/poller/checks_snmp.c
      +++ b/src/zabbix_server/poller/checks_snmp.c
      @@ -28,6 +28,7 @@
       #include "comms.h"
       #include "zbxalgo.h"
       #include "zbxjson.h"
      +extern unsigned char   process_type;
       
       /*
        * SNMP Dynamic Index Cache
      @@ -1283,7 +1284,7 @@ static int        zbx_snmp_get_values(struct snmp_session *ss, const DC_ITEM *items, ch
                      goto out;
              }
       
      -       ss->retries = (1 == mapping_num && 0 == level ? 1 : 0);
      +       ss->retries = (1 == mapping_num && 0 == level && ZBX_POLLER_TYPE_UNREACHABLE != process_type ? 1 : 0);
       retry:
              status = snmp_synch_response(ss, pdu, &response); 

            vso Vladislavs Sokurenko
            vso Vladislavs Sokurenko
            Team A
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: