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