Hello coders! Now I'm hundred percent positively sure, that has to be some bug in handling SET requests between starting/killing subagent because I built new master agent from the tarbal 5.3.0.1 (subagents were the same), the same test case already described in mail 'Master agent goes dead' and after few ten times of starting and killing agent together with WALKing and SETing only one parameter (registered in handler in master agent) it hapens always, that master becomes unresponsive to the SNMP request.
And this is because every further request is added to the queue instead of processed immediatly. Bellow is the listing of from gdb with marked key points. So, what is going wrong before that event, that set is processed in wrong way? Nice weekend, Igor G. > -----Original Message----- > From: Robert Story [mailto:[EMAIL PROTECTED] > Sent: 9. januar 2006 19:36 > To: Grasic Igor > Cc: net-snmp-coders@lists.sourceforge.net > Subject: Re: Master agent goes dead > > > On Mon, 9 Jan 2006 08:34:09 +0100 Grasic wrote: > GI> Hello Dave, > > Hmppf. Despite the way that it sometimes appears, Dave is not > the only person > who helps out on this list. > > GI> > Have you tried 5.3? > GI> > GI> I have to admit that I did not [...] > GI> ============================================================================ ======= Breakpoint 1, _sess_process_packet (sessp=0xb4a70, sp=0xb4a70, isp=0xb4cf0, transport=0xb4cd8, opaque=0xb4d28, olength=0, packetptr=0xbffffb6c "\t", length=65536) at snmp_api.c:5093 5093 netsnmp_request_list *rp, *orp = NULL; (gdb) n 5090 { (gdb) 5101 if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, (gdb) 5093 netsnmp_request_list *rp, *orp = NULL; (gdb) 5095 int ret = 0, handled = 0; (gdb) 5090 { (gdb) 5101 if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, (gdb) 5121 if (isp->hook_pre) { (gdb) 5122 if (isp->hook_pre(sp, transport, opaque, olength) == 0) { (gdb) 5131 if (isp->hook_create_pdu) { (gdb) 5134 pdu = snmp_create_sess_pdu(transport, opaque, olength); (gdb) 5136 if (pdu == NULL) { (gdb) 5134 pdu = snmp_create_sess_pdu(transport, opaque, olength); (gdb) n 5136 if (pdu == NULL) { (gdb) 5144 if (isp->hook_parse) { (gdb) 5147 ret = snmp_parse(sessp, sp, pdu, packetptr, length); (gdb) 5154 if (isp->hook_post) { (gdb) 5147 ret = snmp_parse(sessp, sp, pdu, packetptr, length); (gdb) 5154 if (isp->hook_post) { (gdb) 5155 if (isp->hook_post(sp, pdu, ret) == 0) { (gdb) 5161 if (ret != SNMP_ERR_NOERROR) { (gdb) 5186 if (pdu->flags & UCD_MSG_FLAG_RESPONSE_PDU) { (gdb) 5329 if (sp->callback) { (gdb) 5334 sp->callback(NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE, (gdb) 5333 handled = 1; (gdb) 5334 sp->callback(NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE, (gdb) 5333 handled = 1; (gdb) 5334 sp->callback(NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE, (gdb) Breakpoint 2, netsnmp_handle_request (asp=0x2f7a28, status=988768) at snmp_agent.c:3001 3001 if ((0 == netsnmp_check_delegated_chain_for(asp)) && (gdb) n 3007 if (netsnmp_processing_set) { (gdb) p netsnmp_processing_set $1 = (struct netsnmp_agent_session_s *) 0x1035a8 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ||||||||||||||| I THINK THIS SHOULD BE SET TO NULL, NORMALY (gdb) p *netsnmp_processing_set $2 = {mode = 0, session = 0xb4d28, pdu = 0x4d60e8, orig_pdu = 0x4c1058, rw = 1, exact = 1, status = 0, index = 0, oldmode = 0, next = 0xfe4f8, reqinfo = 0x118e30, requests = 0x0, treecache = 0x0, bulkcache = 0x0, treecache_len = 0, treecache_num = -1, cache_store = 0x0, vbcount = 0} (gdb) p *netsnmp_processing_set->pdu $3 = {version = 1, command = 163, reqid = 1682479793, msgid = 0, transid = 73837, sessid = 0, errstat = 0, errindex = 0, time = 0, flags = 0, securityModel = 2, securityLevel = 1, msgParseModel = 0, transport_data = 0x4d37c0, transport_data_length = 16, tDomain = 0x7c894, tDomainLen = 7, variables = 0x501df8, community = 0x102c58 "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 = 0x0, contextNameLen = 0, securityEngineID = 0x0, securityEngineIDLen = 0, securityName = 0x0, securityNameLen = 0, priority = 0, range_subid = 0, securityStateRef = 0x0} (gdb) p *netsnmp_processing_set->orig_pdu $4 = {version = 1, command = 163, reqid = 1682479793, msgid = 0, transid = 73837, sessid = 0, errstat = 0, errindex = 0, time = 0, flags = 0, securityModel = 2, securityLevel = 1, msgParseModel = 0, transport_data = 0x135288, transport_data_length = 16, tDomain = 0x7c894, tDomainLen = 7, variables = 0x4ec120, community = 0x4b0350 "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 = 0x0, contextNameLen = 0, securityEngineID = 0x0, securityEngineIDLen = 0, securityName = 0x0, securityNameLen = 0, priority = 0, range_subid = 0, securityStateRef = 0x0} (gdb) p *netsnmp_processing_set->session $5 = {version = -1, retries = 5, timeout = 1000000, flags = 0, subsession = 0x0, next = 0x0, peername = 0x0, remote_port = 0, localname = 0x0, local_port = 0, authenticator = 0, callback = 0x24db8 <handle_snmp_packet>, callback_magic = 0x0, s_errno = 0, s_snmp_errno = 0, sessid = 4, community = 0xb4e28 "", community_len = 0, rcvMsgMaxSize = 65507, sndMsgMaxSize = 0, isAuthoritative = 1 '\001', contextEngineID = 0x0, contextEngineIDLen = 0, engineBoots = 0, engineTime = 0, contextName = 0xb4e98 "", contextNameLen = 0, securityEngineID = 0x0, securityEngineIDLen = 0, securityName = 0x0, securityNameLen = 0, securityAuthProto = 0xb4e38, securityAuthProtoLen = 10, securityAuthKey = '\0' <repeats 31 times>, securityAuthKeyLen = 0, securityAuthLocalKey = 0x0, securityAuthLocalKeyLen = 0, securityPrivProto = 0xb4e68, securityPrivProtoLen = 10, securityPrivKey = '\0' <repeats 31 times>, securityPrivKeyLen = 0, securityPrivLocalKey = 0x0, securityPrivLocalKeyLen = 0, securityModel = 3, securityLevel = 1, paramName = 0x0, securityInfo = 0x0, myvoid = 0x0} (gdb) p *netsnmp_processing_set->reqinfo $6 = {mode = 0, asp = 0x0, agent_data = 0x0} (gdb) p netsnmp_processing_set $7 = (struct netsnmp_agent_session_s *) 0x1035a8 (gdb) p asp $8 = (struct netsnmp_agent_session_s *) 0x2f7a28 (gdb) n 3029 netsnmp_add_queued(asp); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |||||||||||| I THINK THIS SHOULD BE SET TO NULL, NORMALY (gdb) 3030 return 1; (gdb) 3071 } (gdb) _sess_process_packet (sessp=0xb4cd8, sp=0xb4d28, isp=0xb4cf0, transport=0xf1660, opaque=0xe9f08, olength=16, packetptr=0x4689d8 "0)\002\001\001\004\006public|\034\002\004G/|\"\002\001", length=43) at snmp_api.c:5345 ============================================================================ ======= ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ Net-snmp-coders mailing list Net-snmp-coders@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/net-snmp-coders