[snmp] Westhawk SNMP Stack version 5.1 stuck thread issue
Alex Ioannou
alex.ioannou at gmail.com
Wed Jul 23 15:14:59 BST 2008
Hi there
Here is all of the logging that I have to hand. I also found out
that we are using SNMP 2 and not 3.
DEADLOCK DETECTED:
==================
[deadlocked thread] 73.187.240.88_161_null_v1_Trans0:
----------------------------------------------------
Thread '73.187.240.88_161_null_v1_Trans0' is waiting to acquire lock
'uk.co.west
hawk.snmp.stack.SnmpContextv2c at ca750' that is held by thread
'ExecuteThread: '22
' for queue: 'act-execute-queue''
Stack trace:
------------
uk.co.westhawk.snmp.stack.AbstractSnmpContext.sendPacket(AbstractSnmpCon
text.java:625)
uk.co.westhawk.snmp.stack.Pdu.sendme(Pdu.java:251)
uk.co.westhawk.snmp.stack.Pdu.transmit(Pdu.java:676)
uk.co.westhawk.snmp.stack.Pdu.transmit(Pdu.java:664)
uk.co.westhawk.snmp.stack.Transmitter.run(Transmitter.java:80)
java.lang.Thread.run(Thread.java:619)
[deadlocked thread] 96.160.255.250_161_null_v1_Trans0:
-----------------------------------------------------
Thread '96.160.255.250_161_null_v1_Trans0' is waiting to acquire lock
'uk.co.wes
thawk.snmp.stack.SnmpContextv2c at 1a51bb7' that is held by thread 'ExecuteThread:
'15' for queue: 'eventhandler-worker-3-queue''
Stack trace:
------------
uk.co.westhawk.snmp.stack.AbstractSnmpContext.sendPacket(AbstractSnmpCon
text.java:625)
uk.co.westhawk.snmp.stack.Pdu.sendme(Pdu.java:251)
uk.co.westhawk.snmp.stack.Pdu.transmit(Pdu.java:676)
uk.co.westhawk.snmp.stack.Pdu.transmit(Pdu.java:664)
uk.co.westhawk.snmp.stack.Transmitter.run(Transmitter.java:80)
java.lang.Thread.run(Thread.java:619)
[deadlocked thread] ExecuteThread: '22' for queue: 'act-execute-queue':
----------------------------------------------------------------------
Thread 'ExecuteThread: '22' for queue: 'act-execute-queue'' is
waiting to acquir
e lock 'uk.co.westhawk.snmp.stack.Transmitter at bc9817' that is held by
thread '73
.187.240.88_161_null_v1_Trans0'
Stack trace:
------------
uk.co.westhawk.snmp.stack.Transmitter.stand(Transmitter.java:144)
uk.co.westhawk.snmp.stack.Transmitter.destroy(Transmitter.java:161)
uk.co.westhawk.snmp.stack.AbstractSnmpContext.freeTransmitters(AbstractS
nmpContext.java:934)
uk.co.westhawk.snmp.stack.AbstractSnmpContext.destroy(AbstractSnmpContex
t.java:470)
[deadlocked thread] ExecuteThread: '15' for queue:
'eventhandler-worker-3-queue'
:
--------------------------------------------------------------------------------
Thread 'ExecuteThread: '15' for queue: 'eventhandler-worker-3-queue''
is waiting
to acquire lock 'uk.co.westhawk.snmp.stack.Transmitter at beb647' that is held by
thread '96.160.255.250_161_null_v1_Trans0'
Stack trace:
------------
uk.co.westhawk.snmp.stack.Transmitter.stand(Transmitter.java:144)
uk.co.westhawk.snmp.stack.Transmitter.destroy(Transmitter.java:161)
uk.co.westhawk.snmp.stack.AbstractSnmpContext.freeTransmitters(AbstractS
nmpContext.java:934)
uk.co.westhawk.snmp.stack.AbstractSnmpContext.destroy(AbstractSnmpContex
t.java:470)
####<Jul 6, 2008 1:57:09 PM UTC> <Critical> <Health> <cwls05>
<cwls5_jrAPS1> <Ex
ecuteThread: '4' for queue: 'weblogic.kernel.System'> <<WLS Kernel>>
<> <> <1215
352629836> <BEA-310006> <Critical Subsystem core has failed. Setting
server stat
e to FAILED.
Reason: Thread deadlock detected>
####<Jul 6, 2008 1:57:09 PM UTC> <Critical> <WebLogicServer> <cwls05>
<cwls5_jrA
PS1> <ExecuteThread: '4' for queue: 'weblogic.kernel.System'> <<WLS Kernel>> <>
<> <1215352629838> <BEA-000385> <Server health failed. Reason: health
of critica
l service 'core' failed>
####<Jul 6, 2008 1:57:09 PM UTC> <Notice> <WebLogicServer> <cwls05>
<cwls5_jrAPS
1> <ExecuteThread: '4' for queue: 'weblogic.kernel.System'> <<WLS
Kernel>> <> <>
<1215352629885> <BEA-000365> <Server state changed to FAILED>
####<Jul 6, 2008 1:57:10 PM UTC> <Error> <> <cwls05> <cwls5_jrAPS1>
<ExecuteThre
ad: '4' for queue: 'weblogic.kernel.System'> <<WLS Kernel>> <> <>
<1215352630104
> <BEA-000000> <THREAD DUMP from JVM taken at 'Sun Jul 6 13:57:09 2008'
2008-07-06 13:57:09
Full thread dump Java HotSpot(TM) Server VM (1.6.0_02-b05 mixed mode):
"73.180.155.44_161_null_v1_Receive" daemon prio=10 tid=0x07ddb000
nid=0x592e wai
ting for monitor entry [0x695ff000..0x695ffbf0]
java.lang.Thread.State: BLOCKED (on object monitor)
at uk.co.westhawk.snmp.stack.Transmitter.stand(Transmitter.java:144)
- waiting to lock <0xefe4d738> (a uk.co.westhawk.snmp.stack.Transmitter)
at uk.co.westhawk.snmp.stack.Transmitter.destroy(Transmitter.java:161)
at uk.co.westhawk.snmp.stack.AbstractSnmpContext.freeTransmitters(Abstra
ctSnmpContext.java:934)
at uk.co.westhawk.snmp.stack.AbstractSnmpContext.run(AbstractSnmpContext
.java:598)
at java.lang.Thread.run(Thread.java:619)
Hope this helps
Alex
2008/7/23 Birgit Arkesteijn <birgit at westhawk.co.uk>:
> Hi Alex,
>
> The fix you mentioned was added to avoid a NullPointer exception. I do not
> think this change will solve your problem(s) of hanging threads.
>
> See the discussion at
> http://snmp.westhawk.co.uk/pipermail/snmp/2007-January/000458.html
> continued with
> http://snmp.westhawk.co.uk/pipermail/snmp/2007-February/000460.html
>
> Is there anything else in the StackTrace that suggests why notifyAll() in/on
> Transmitter.stand(Transmitter.java:144) is blocked or what it's waiting for?
>
> Cheers, Birgit
>
>
> On 23/07/08 12:25, Alex Ioannou wrote:
>>
>> Hi there
>>
>> I'm experiencing some problems when running SNMP requests using the
>> Westhawk SNMP stack, version 5.1.
>> Threads on the application server are becoming stuck when attempting
>> to clean up the SNMP context after
>> sending an SNMP request to a device.
>>
>> We are running our application on BEA Weblogic 10 application server.
>> We have an enterprise java bean
>> that manages our SNMP requests to the westhawk API. The application
>> will send several SNMP requests
>> simultaneously to different devices so several SNMP context objects
>> will reside in memory and our application
>> will have the possibility of invoking the destroy method simultaneously.
>>
>> I looked through the source code for version 6 and found that a fix
>> was made in Transmitter.java where
>> one thread set the "me" variable to null in destroy() but a second
>> would be about to call me.interrupt() in
>> interruptMe(), resulting in a null pointer.
>>
>> Will this fix help with my stuck thread issue or is there still a
>> problem in the code?
>>
>>
>> [deadlocked thread] ExecuteThread: '21' for queue:
>> 'act-execute-queue':
>>
>> ----------------------------------------------------------------------
>> Thread 'ExecuteThread: '21' for queue: 'act-execute-queue'' is
>> waiting to acquir
>> e lock 'uk.co.westhawk.snmp.stack.Transmitter at 984dea' that is held
>> by
>> thread '73
>> .106.72.80_161_null_v1_Trans0'
>>
>> Stack trace:
>> ------------
>>
>> uk.co.westhawk.snmp.stack.Transmitter.stand(Transmitter.java:144)
>>
>> uk.co.westhawk.snmp.stack.Transmitter.destroy(Transmitter.java:161)
>>
>> uk.co.westhawk.snmp.stack.AbstractSnmpContext.freeTransmitters(AbstractS
>> nmpContext.java:934)
>>
>> uk.co.westhawk.snmp.stack.AbstractSnmpContext.destroy(AbstractSnmpContex
>> t.java:470)
>>
>> Thanks
>> Alex
>> _______________________________________________
>> snmp mailing list
>> snmp at snmp.westhawk.co.uk
>> http://snmp.westhawk.co.uk/mailman/listinfo/snmp
>
> --
> -- Birgit Arkesteijn, birgit at westhawk.co.uk,
> -- Westhawk Ltd, Albion Wharf, 19 Albion Street, Manchester M1 5LN, UK
> -- Company no: 1769350
> -- Registered Office:
> -- 15 London Road, Stockton Heath, Warrington WA4 6SJ. UK.
> -- tel.: +44 (0)161 237 0660
> -- <URL: http://www.westhawk.co.uk>
> _______________________________________________
> snmp mailing list
> snmp at snmp.westhawk.co.uk
> http://snmp.westhawk.co.uk/mailman/listinfo/snmp
>
More information about the snmp
mailing list