I'm having issues with sending traps using send_v2trap() from an AgentX
subagent on Solaris 9.
When the subagent sends series of traps, the subagent and master agent
both get blocked on the sendto() call. It does not matter if there is any
delay between sending traps. But interestingly blocking happens at the
exact number of traps each time (34th trap in my case).. is the domain
socket's buffer getting full? When the problem happens, obviously master
agent does not respond to any snmp queries.
To isolate the problem, I wrote a simple test subagent which only sends nothing
but traps. Enterprise trap PDU is about 330 bytes.
If subagent is killed, I can see the master agent sends another 34 traps.
MY workaround is to create a separate session for sending traps, construct
the trap PDUs myself and send them, which works. But I rather not do that
if possible.
Any insight into this problem will be appreciated.
Some debug information is shown below:
===============================================================================
OS: Solaris 9
Net-SNMP versions: 5.4.2.1 and 5.5
Communication: unix domain socket. But problem happens if TCP is used as well.
Subagent's pid: 13375
# pstack 13375
ff19cf54 sendto (7, 3493d0, 290, 0, 0, 0)
000c563c _sess_async_send (25e618, 33eec0, 48080, 0, 2710, 0) + f3c
000c5994 snmp_sess_async_send (25e618, 33eec0, 48080, 0, 0, 0) + 74
000c46d0 snmp_async_send (2671f8, 33eec0, 48080, 0, 0, 33f0c9) + 40
00048798 send_trap_to_sess (2671f8, 1b0aa0, 17e724, 9, ff07b5b0, 4) + 240
00047f60 netsnmp_send_traps (ffffffff, ffffffff, 17e810, a, 2b2d30, 0) + 878
00048054 send_enterprise_trap_vars (ffffffff, ffffffff, 17e810, a, 2b2d30, 0)
+ 44
00048940 send_trap_vars (ffffffff, ffffffff, 2b2d30, fffffff8, 0, 2bcdcd) +
98
00048a8c send_v2trap (2b2d30, ff07b760, d, 2, ff07bc0c, 4) + 14
0002ef90 test_check_trap_queue (2, 0, 1510f1d, ff1bf2e8, ff07be18,
ff07bd8c) + 1e0
000fe548 run_alarms (0, ff07be18, 0, 0, ff07be10, ff07bea1) + 1d0
00031a30 agent_check_and_process (1, 12d568, 2, 0, 0, 0) + 1e8
0002f058 test_snmp_handler (0, 0, 0, 0, 0, 0) + 58
# lsof -p 13375
...
test_tra 13375 root 7u unix 105,40 0t0 625
/devices/pseudo/t...@0:ticots->/var/snmp/master (0x300056cb1d8->0x30028056398)
...
# ps -eaf|grep snmpd
root 13370 13369 0 14:28:15 pts/15 0:01 snmpd -f -Dagentx
# pstack 13370
ff19cf54 sendto (b, 463ea8, 298, 0, 0, 0)
001aa23c _sess_async_send (437d50, 454f80, 0, 0, 78, 78) + f3c
001aa594 snmp_sess_async_send (437d50, 454f80, 0, 0, 78, 78) + 74
001a92d0 snmp_async_send (440fe8, 454f80, 0, 0, 165ae, 400fe4) + 40
001a9210 snmp_send (440fe8, 454f80, 0, a477b11, 0, 6) + 20
00089980 handle_master_agentx_packet (1, 440fe8, a477b11, 4fff68, 0, 290) +
7a8
001abb78 _sess_process_packet (437d50, 440fe8, 3eb818, 3eb750, 538ee0, 6e) +
ff8
001ad5e8 _sess_read (444ac8, ffbff468, 5, 7efefeff, 61, 73) + 1740
001adc90 snmp_sess_read2 (437d50, ffbff468, 21a0c0, ffbff288, 0, 0) + 30
001abe68 snmp_read2 (ffbff468, ffbff468, ffbff3e0, ffbff358, 4a5, 0) + 50
0004a3cc receive (0, 4, 2127c0, 2b13cc, 41d, ff00) + 6dc
00049934 main (3, ffbff69c, ffbff6ac, 2ad400, 0, 0) + 243c
00046b70 _start (0, 0, 0, 0, 0, 0) + 108
# lsof -p 13370
....
snmpd 13370 root 10u unix 105,39 0t0 625
/devices/pseudo/t...@0:ticots->/var/snmp/master (0x300056cb8f8)
(Vnode=0x30028056398)
snmpd 13370 root 11u unix 105,41 0t0 625
/devices/pseudo/t...@0:ticots->/var/snmp/master (0x300056cbc88)
snmpd 13370 root 12u unix 105,43 0t0 625
/devices/pseudo/t...@0:ticots->/var/snmp/master (0x300056cb730)
....
===============================================================================
Thanks.
--
Muhammad A Muquit . Alcatel-Lucent
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders