[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