Bug 864255

Summary: [apache plugin] SNMP ping timeout is too low (50ms) and is not configurable
Product: [JBoss] JBoss Operations Network Reporter: Larry O'Leary <loleary>
Component: Plugin -- ApacheAssignee: RHQ Project Maintainer <rhq-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: high Docs Contact:
Priority: urgent    
Version: JON 3.0.1CC: skondkar
Target Milestone: ---   
Target Release: JON 3.1.2   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 813361 Environment:
Last Closed: 2013-09-11 10:59:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 813361    
Bug Blocks:    

Description Larry O'Leary 2012-10-09 01:44:22 UTC
+++ This bug was initially created as a clone of RHQ Bug #813361 +++

The following message appears in the Agent log if an Apache Server avail check fails due to the SNMP "ping" timing out:

2012-04-11 17:44:56,271 DEBUG [ResourceContainer.invoker.daemon-102] (rhq.plugins.www.snmp.SNMPSession_v2c)- Error while pinging SNMP 1 agent at 127.0.0.1/1610/public. SNMP GETNEXT request for iso(1) failed - org.rhq.plugins.www.snmp.SNMPException: Request for [iso] timed out.

Looking at the code, the SNMP timeout that's used is 50ms (with 1 retry) and is not configurable, so I'm not surprised it's timing out every so often... 50ms seems way low to me. 

I think we should do the following:

1) increase the default value for the timeout to 4s so it's just under the default avail facet timeout
2) change the default retries from 1 to 0
3) make the timeout and the retries configurable via conn props

--- Additional comment from ian.springer on 2012-04-18 12:40:51 EDT ---

Done in master:

http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=commitdiff;h=bf20e58

Here are the two new props that have been added to the Apache Server type's plugin config:

         <c:simple-property name="snmpRequestTimeout" displayName="SNMP Request Timeout" type="long" default="2000" required="false"
                            description="the timeout, in milliseconds, for requests to the Apache SNMP agent; defaults to 2000">
           <c:constraint>
             <c:integer-constraint minimum="100"/>
           </c:constraint>
         </c:simple-property>

         <c:simple-property name="snmpRequestRetries" displayName="SNMP Request Retries" type="integer" default="1" required="false"
                            description="the number of times a request that has timed out should be retried; defaults to 1">
           <c:constraint>
             <c:integer-constraint minimum="0"/>
           </c:constraint>
         </c:simple-property>

Comment 1 Larry O'Leary 2012-10-09 01:45:18 UTC
Moving to ON_QA as this was added to master back in April but just needs to be tested in a release (was introduced in JON 3.1)

Comment 2 Sunil Kondkar 2012-11-20 10:35:41 UTC
Verified on JON 3.1.2.ER1 build.

The Apache connection properties shows the fields 'SNMP Request Timeout' with default value as 2000 ms and 'SNMP Request Retries' with default value as 1. Verified that the fields can be modified and saved successfully.

Also verified the field validations and validations for min values for the properties.