[SNMP4J] Re: SNMP Agent - Error in encoding v1 trap (Agent Address).
Frank Fock
fock at agentpp.com
Fri Jul 13 09:36:08 CEST 2007
Senthil,
Thank you for reporting this bug! The following
patch should fix it:
--- ProxyForwarderImpl.java (revision 237)
+++ ProxyForwarderImpl.java (working copy)
@@ -35,6 +35,7 @@
import org.snmp4j.mp.*;
import org.snmp4j.smi.*;
import org.snmp4j.util.*;
+import java.net.InetAddress;
/**
* The <code>ProxyForwarderImpl</code> class implements a proxy forwarder
@@ -369,8 +370,9 @@
}
target.addAll(source.toArray());
if (request.getCommandEvent().getPeerAddress() instanceof
IpAddress) {
- targetV1.setAgentAddress((IpAddress)
-
request.getCommandEvent().getPeerAddress());
+ InetAddress agentAddress = ((IpAddress)
+ request.getCommandEvent().getPeerAddress()).getInetAddress();
+ targetV1.setAgentAddress(new IpAddress(agentAddress));
}
else {
targetV1.setAgentAddress(new IpAddress("0.0.0.0"));
Best regasrds,
Frank
Senthil Muniswamy wrote:
> Frank,
>
> I am running an agent with proxy forwarding capability that uses
> SNMP4J v1.8.2 with SNMP4J-Agent v1.1.3.
>
> Generated a v2 trap to forward as v1 trap. It fails to encode while
> preparing the outgoing message with BufferOverflowException.
>
> Reason is the BER length differs for v1 trap Agent Address when
> calculating the buffer size and actual encoding. While encoding the
> address includes additional 2 bytes for port in
> TransportIpAddress.getValue() method.
>
> Agent hangs after encountering this exception for couple of times.
>
> Exception for your reference:
>
> 20:20:15,218 INFO [STDOUT] 180813
> [DefaultUDPTransportMapping_172.16.15.113/162
> ] DEBUG org.snmp4j.transport.DefaultUdpTransportMapping - Received
> message from
> /172.16.15.114/2887 with length 86:
> 30:54:02:01:01:04:06:70:75:62:6c:69:63:a7:4
> 7:02:01:01:02:01:00:02:01:00:30:3c:30:0f:06:08:2b:06:01:02:01:01:03:00:43:03:01:
>
> e2:40:30:17:06:0a:2b:06:01:06:03:01:01:04:01:00:06:09:2b:06:01:06:03:01:01:05:01
>
> :30:10:06:08:2b:06:01:02:01:01:05:00:04:04:74:65:73:74
> 20:20:15,249 INFO [STDOUT] 180844
> [DefaultUDPTransportMapping_172.16.15.113/162
> ] DEBUG org.snmp4j.Snmp - Fire process PDU event:
> CommandResponderEvent[transpo
> rtMapping=org.snmp4j.transport.DefaultUdpTransportMapping at 5291d9peerAddress=172.
>
> 16.15.114/2887, processed=false, pdu=[TRAP[requestID=1,
> errorStatus=Success(0),
> errorIndex=0, VBS[1.3.6.1.2.1.1.3.0 = 0:20:34.56; 1.3.6.1.6.3.1.1.4.1.0
> = 1.3.6.
> 1.6.3.1.1.5.1; 1.3.6.1.2.1.1.5.0 = test]]], securityName=public,
> securityModel=2
> , securityLevel=1]
> 20:20:15,264 INFO [STDOUT] 180859
> [DefaultUDPTransportMapping_172.16.15.113/162
> ] DEBUG org.snmp4j.agent.mo.snmp.SnmpCommunityMIB - Looking up
> coexistence info
> for 'public'
> 20:20:15,264 INFO [STDOUT] 180859
> [DefaultUDPTransportMapping_172.16.15.113/162
> ] DEBUG org.snmp4j.agent.mo.snmp.SnmpCommunityMIB - Found coexistence
> info for
> 'public'=CoexistenceInfo[securityName=public,contextEngineID=,contextName=,trans
>
> portTag=]
> 20:20:15,280 INFO [STDOUT] 180875
> [DefaultUDPTransportMapping_172.16.15.113/162
> ] DEBUG org.snmp4j.agent.mo.snmp.SnmpCommunityMIB - Address
> 172.16.15.114/2887
> passes filter, because source address filtering is disabled
> 20:20:15,296 INFO [STDOUT] 180891
> [DefaultUDPTransportMapping_172.16.15.113/162
> ] DEBUG org.snmp4j.agent.CommandProcessor - Processsing proxy request
> with prox
> y forwarder org.snmp4j.agent.mo.snmp.ProxyForwarderImpl at 1de5e71
> 20:20:15,296 INFO [STDOUT] 180891 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Checking possible match for in parameter: 3
> 20:20:15,311 INFO [STDOUT] 180906 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Matching request
> org.snmp4j.agent.ProxyForwardRequest[c
> oexistenceInfo=CoexistenceInfo[securityName=public,contextEngineID=,contextName=
>
> ,transportTag=],proxyType=3,commandEvent=CommandResponderEvent[transportMapping=
>
> org.snmp4j.transport.DefaultUdpTransportMapping at 5291d9peerAddress=172.16.15.114/
>
> 2887, processed=false, pdu=[TRAP[requestID=1, errorStatus=Success(0),
> errorIndex
> =0, VBS[1.3.6.1.2.1.1.3.0 = 0:20:34.56; 1.3.6.1.6.3.1.1.4.1.0 =
> 1.3.6.1.6.3.1.1.
> 5.1; 1.3.6.1.2.1.1.5.0 = test]]], securityName=public, securityModel=2,
> security
> Level=1]] with mpModel=0, secModel=1, secLevel=1, secName=private
> 20:20:15,311 INFO [STDOUT] 180906 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Checking possible match for in parameter: 4
> 20:20:15,311 INFO [STDOUT] 180906 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Matching request
> org.snmp4j.agent.ProxyForwardRequest[c
> oexistenceInfo=CoexistenceInfo[securityName=public,contextEngineID=,contextName=
>
> ,transportTag=],proxyType=3,commandEvent=CommandResponderEvent[transportMapping=
>
> org.snmp4j.transport.DefaultUdpTransportMapping at 5291d9peerAddress=172.16.15.114/
>
> 2887, processed=false, pdu=[TRAP[requestID=1, errorStatus=Success(0),
> errorIndex
> =0, VBS[1.3.6.1.2.1.1.3.0 = 0:20:34.56; 1.3.6.1.6.3.1.1.4.1.0 =
> 1.3.6.1.6.3.1.1.
> 5.1; 1.3.6.1.2.1.1.5.0 = test]]], securityName=public, securityModel=2,
> security
> Level=1]] with mpModel=1, secModel=2, secLevel=1, secName=private
> 20:20:15,327 INFO [STDOUT] 180922 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Checking possible match for in parameter: 5
> 20:20:15,327 INFO [STDOUT] 180922 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Matching request
> org.snmp4j.agent.ProxyForwardRequest[c
> oexistenceInfo=CoexistenceInfo[securityName=public,contextEngineID=,contextName=
>
> ,transportTag=],proxyType=3,commandEvent=CommandResponderEvent[transportMapping=
>
> org.snmp4j.transport.DefaultUdpTransportMapping at 5291d9peerAddress=172.16.15.114/
>
> 2887, processed=false, pdu=[TRAP[requestID=1, errorStatus=Success(0),
> errorIndex
> =0, VBS[1.3.6.1.2.1.1.3.0 = 0:20:34.56; 1.3.6.1.6.3.1.1.4.1.0 =
> 1.3.6.1.6.3.1.1.
> 5.1; 1.3.6.1.2.1.1.5.0 = test]]], securityName=public, securityModel=2,
> security
> Level=1]] with mpModel=0, secModel=1, secLevel=1, secName=public
> 20:20:15,343 INFO [STDOUT] 180938 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Checking possible match for in parameter: 6
> 20:20:15,343 INFO [STDOUT] 180938 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Matching request
> org.snmp4j.agent.ProxyForwardRequest[c
> oexistenceInfo=CoexistenceInfo[securityName=public,contextEngineID=,contextName=
>
> ,transportTag=],proxyType=3,commandEvent=CommandResponderEvent[transportMapping=
>
> org.snmp4j.transport.DefaultUdpTransportMapping at 5291d9peerAddress=172.16.15.114/
>
> 2887, processed=false, pdu=[TRAP[requestID=1, errorStatus=Success(0),
> errorIndex
> =0, VBS[1.3.6.1.2.1.1.3.0 = 0:20:34.56; 1.3.6.1.6.3.1.1.4.1.0 =
> 1.3.6.1.6.3.1.1.
> 5.1; 1.3.6.1.2.1.1.5.0 = test]]], securityName=public, securityModel=2,
> security
> Level=1]] with mpModel=1, secModel=2, secLevel=1, secName=public
> 20:20:15,358 INFO [STDOUT] 180953 [SMCAgentPool.0] DEBUG
> org.snmp4j.agent.mo.sn
> mp.ProxyForwarderImpl - Proxy multiple targets out with tags
> [172.16.15.114]
> 20:20:15,374 ERROR [STDERR] Exception in thread "SMCAgentPool.0"
> 20:20:15,374 INFO [STDOUT] 180969 [SMCAgentPool.0] ERROR STDERR -
> Exception in
> thread "SMCAgentPool.0"
> 20:20:15,374 ERROR [STDERR] java.nio.BufferOverflowException
> 20:20:15,389 INFO [STDOUT] 180969 [SMCAgentPool.0] ERROR STDERR -
> java.nio.Buf
> ferOverflowException
> 20:20:15,389 ERROR [STDERR] at
> java.nio.HeapByteBuffer.put(HeapByteBuffer.ja
> va:165)
> 20:20:15,389 INFO [STDOUT] 180984 [SMCAgentPool.0] ERROR STDERR -
> at java.
> nio.HeapByteBuffer.put(HeapByteBuffer.java:165)
> 20:20:15,389 ERROR [STDERR] at
> java.nio.ByteBuffer.put(ByteBuffer.java:812)
> 20:20:15,405 INFO [STDOUT] 180984 [SMCAgentPool.0] ERROR STDERR -
> at java.
> nio.ByteBuffer.put(ByteBuffer.java:812)
> 20:20:15,405 ERROR [STDERR] at
> org.snmp4j.asn1.BEROutputStream.write(BEROutp
> utStream.java:71)
> 20:20:15,405 INFO [STDOUT] 181000 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.asn1.BEROutputStream.write(BEROutputStream.java:71)
> 20:20:15,405 ERROR [STDERR] at
> org.snmp4j.asn1.BER.encodeString(BER.java:350
> )
> 20:20:15,405 INFO [STDOUT] 181000 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.asn1.BER.encodeString(BER.java:350)
> 20:20:15,405 ERROR [STDERR] at
> org.snmp4j.smi.OctetString.encodeBER(OctetStr
> ing.java:146)
> 20:20:15,421 INFO [STDOUT] 181000 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.smi.OctetString.encodeBER(OctetString.java:146)
> 20:20:15,421 ERROR [STDERR] at
> org.snmp4j.smi.VariableBinding.encodeBER(Vari
> ableBinding.java:176)
> 20:20:15,421 INFO [STDOUT] 181016 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.smi.VariableBinding.encodeBER(VariableBinding.java:176)
> 20:20:15,421 ERROR [STDERR] at
> org.snmp4j.PDUv1.encodeBER(PDUv1.java:214)
> 20:20:15,421 INFO [STDOUT] 181016 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.PDUv1.encodeBER(PDUv1.java:214)
> 20:20:15,436 ERROR [STDERR] at
> org.snmp4j.mp.MPv1.prepareOutgoingMessage(MPv
> 1.java:110)
> 20:20:15,436 INFO [STDOUT] 181031 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.mp.MPv1.prepareOutgoingMessage(MPv1.java:110)
> 20:20:15,436 ERROR [STDERR] at
> org.snmp4j.MessageDispatcherImpl.sendPdu(Mess
> ageDispatcherImpl.java:418)
> 20:20:15,436 INFO [STDOUT] 181031 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:418)
> 20:20:15,436 ERROR [STDERR] at
> org.snmp4j.Snmp.sendMessage(Snmp.java:949)
> 20:20:15,436 INFO [STDOUT] 181031 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.Snmp.sendMessage(Snmp.java:949)
> 20:20:15,452 ERROR [STDERR] at org.snmp4j.Snmp.send(Snmp.java:789)
> 20:20:15,452 INFO [STDOUT] 181047 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.Snmp.send(Snmp.java:789)
> 20:20:15,452 ERROR [STDERR] at org.snmp4j.Snmp.send(Snmp.java:753)
> 20:20:15,452 INFO [STDOUT] 181047 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.Snmp.send(Snmp.java:753)
> 20:20:15,452 ERROR [STDERR] at
> org.snmp4j.agent.mo.snmp.ProxyForwarderImpl.m
> ultipleForward(ProxyForwarderImpl.java:409)
> 20:20:15,452 INFO [STDOUT] 181047 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.agent.mo.snmp.ProxyForwarderImpl.multipleForward(ProxyForwarderImpl.java:4
>
> 09)
> 20:20:15,468 ERROR [STDERR] at
> org.snmp4j.agent.mo.snmp.ProxyForwarderImpl.f
> orward(ProxyForwarderImpl.java:90)
> 20:20:15,468 INFO [STDOUT] 181063 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.agent.mo.snmp.ProxyForwarderImpl.forward(ProxyForwarderImpl.java:90)
> 20:20:15,468 ERROR [STDERR] at
> org.snmp4j.agent.CommandProcessor$ProxyComman
> d.run(CommandProcessor.java:518)
> 20:20:15,468 INFO [STDOUT] 181063 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.agent.CommandProcessor$ProxyCommand.run(CommandProcessor.java:518)
> 20:20:15,468 ERROR [STDERR] at
> org.snmp4j.util.ThreadPool$TaskManager.run(Th
> readPool.java:239)
> 20:20:15,468 INFO [STDOUT] 181063 [SMCAgentPool.0] ERROR STDERR -
> at org.s
> nmp4j.util.ThreadPool$TaskManager.run(ThreadPool.java:239)
--
AGENT++
http://www.agentpp.com
http://www.mibexplorer.com
http://www.mibdesigner.com
More information about the SNMP4J
mailing list