RE: SNMPD not responding sometimes even though it is up and running
"Sekhar Reddy Ravi-G20226" <[email protected]>
| Newsgroups | gmane.network.net-snmp.user |
|---|---|
| Message-ID | <[email protected]> |
Hi All, I didnot got anty response for the following issue, Can anyone tell me if they have faced the same issue and is there any workaround for this issue? Any help on this will be appreciated. Thanks, Ravi ________________________________ From: [email protected] [mailto:[email protected]] On Behalf Of Sekhar Reddy Ravi-G20226 Sent: Thursday, December 20, 2007 4:03 PM To: net-snmp-users Subject: SNMPD not responding sometimes even though it is up and running Hi All, Sometimes SNMPD is not responding to snmp requests even though it is up and running, SNMPD is queuing all the requests without processing as netsnmp_processing_set and agent_delegated_list are not getting unset. However SNMPD is able to send traps originated by subagent. We are using Net-snmp-5.2.2 as master and subagent. We have 1) Applications which does set and walk operations on our enterprise mib 2) Monitoring application which does get operation on OID 1.3.6.1.2.1.1.3.0 (sysUpTime) every 10secs 3) Applications which sends number of traps due to changes in the system Our analysis: When the problem occurred we are doing walks on our enterprise MIB followed by set operation, when getnext operation is done agent_delegated_list is set and it did not get unset. After this when set operation is done in netsnmp_handle_request Snmpd checks if agent_delegated_list is set, as it is not unset set request is getting queued and as set operation is not processed netsnmp_processing_set is not getting unset. For all the further queries SNMPD first checks whether netsnmp_processing_set is set , as this not is unset all the requests are getting queued up without getting processed So the root cause seems to be agent_delegated_list field not getting unset, even I did not see any pending timers in the alarm list This problem is coming very frequently. Can you please help us if this kind of problem is seen earlier and any help on this will be appreciated. gdb) p *netsnmp_processing_set->pdu $6 = {version = 1, command = 163, reqid = 34644814, msgid = 0, transid = 5095, sessid = 0, errstat = 0, errindex = 0, time = 0, flags = 0, securityModel = 2, securityLevel = 1, msgParseModel = 0, transport_data = 0x100b5ac0, transport_data_length = 16, tDomain = 0xfe893c4, tDomainLen = 7, variables = 0x100ca7e0, community = 0x10084050 "public", community_len = 6, enterprise = 0x0, enterprise_length = 0, trap_type = 0, specific_type = 0, agent_addr = "\000\000\000", contextEngineID = 0x0, contextEngineIDLen = 0, contextName = 0x100b92f8 "", contextNameLen = 0, securityEngineID = 0x0, securityEngineIDLen = 0, securityName = 0x0, securityNameLen = 0, priority = 0, range_subid = 0, securityStateRef = 0x0} (gdb) (gdb) p *agent_delegated_list->pdu $4 = {version = 1, command = 161, reqid = 1989587127, msgid = 0, transid = 2658, sessid = 0, errstat = 0, errindex = 0, time = 0, flags = 0, securityModel = 2, securityLevel = 1, msgParseModel = 0, transport_data = 0x100cc2f8, transport_data_length = 16, tDomain = 0xfe893c4, tDomainLen = 7, variables = 0x100ccf38, community = 0x100cc2e8 "public", community_len = 6, enterprise = 0x0, enterprise_length = 0, trap_type = 0, specific_type = 0, agent_addr = "\000\000\000", contextEngineID = 0x0, contextEngineIDLen = 0, contextName = 0x100cc3e0 "", contextNameLen = 0, securityEngineID = 0x0, securityEngineIDLen = 0, securityName = 0x0, securityNameLen = 0, priority = 0, range_subid = 0, securityStateRef = 0x0} Code snippet: netsnmp_handle_request(netsnmp_agent_session *asp, int status) { /* * if this isn't a delegated request trying to finish, * processing of a set request should not start until all * delegated requests have completed, and no other new requests * should be processed until the set request completes. */ if ((0 == netsnmp_check_delegated_chain_for(asp)) && (asp != netsnmp_processing_set)) { /* * if we are processing a set and this is not a delegated * request, queue the request */ if (netsnmp_processing_set) { netsnmp_add_queued(asp); DEBUGMSGTL(("snmp_agent", "request queued while processing set, " "asp = %08p\n", asp)); return 1; } /* * check for set request */ if (asp->pdu->command == SNMP_MSG_SET) { netsnmp_processing_set = asp; /* * if there are delegated requests, we must wait for them * to finish. */ if (agent_delegated_list) { DEBUGMSGTL(("snmp_agent", "SET request queued while " "delegated requests finish, asp = %08p\n", asp)); netsnmp_add_queued(asp); return 1; } Thanks, Ravi ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Net-snmp-users mailing list [email protected] Please see the following page to unsubscribe or change other options: https://lists.sourceforge.net/lists/listinfo/net-snmp-users