To answer my own question: I've now had a chance to look more closely at the
TestCompiler code.
It appears that the "pairing" Set is purely used for testing, and the Set is
"write-only"!
So I've commented out the code in CVS.
Hopefully this will fix the hangs, but it will take some while to find out,
as it did not happen often.
S.
-----Original Message-----
From: BAZLEY, Sebastian
Sent: 18 October 2003 12:44
To: JMeter Developers List
Subject: Threads sometimes get stuck in startup
We're using JMeter in batch mode to test a private protocol.
Mostly it runs very well, but two of the test-runs appeared to hang.
It turned out that one or two of the test threads failed to complete - in
fact they seem to have got stuck in startup.
I've got a Thread Dump for the second failure, but I'm not familiar with the
meaning of the thread dump, I can only guess.
It looks like the problem is in java.util.HashMap or HashSet, which are not
synchronized.
Now TestCompiler.subtractNode() references:
private static Set pairing = new HashSet();
I don't know what the pairing Set is used for, but it looks like it _may_ be
the cause of the hang.
Can it be made an instance variable? Indeed, is it needed?
Sebastian
Part of the thread dump; the other test thread looked much the same.
**** TEST1-35 thread 0x152C9570 Stack trace:
[...]
pc 0x00001e839358 sp 0x303efb0 -1:
java/util/HashMap.containsKey(Ljava/lang/Object;)Z
pc 0x00001e907da4 sp 0x303eff0 5:
java/util/HashSet.contains(Ljava/lang/Object;)Z
pc 0x00001e907794 sp 0x303f010 107:
org/apache/jmeter/threads/TestCompiler.subtractNode()V
pc 0x00001e8c25e8 sp 0x303f070 69:
org/apache/jorphan/collections/HashTree.traverseInto(Lorg/apache/jorphan/col
lections/HashTreeTraverser;)V
pc 0x00001e8c2578 sp 0x303f0c0 38:
org/apache/jorphan/collections/HashTree.traverseInto(Lorg/apache/jorphan/col
lections/HashTreeTraverser;)V
pc 0x00001e8c2578 sp 0x303f110 38:
org/apache/jorphan/collections/HashTree.traverseInto(Lorg/apache/jorphan/col
lections/HashTreeTraverser;)V
pc 0x00001e8c2418 sp 0x303f160 38:
org/apache/jorphan/collections/HashTree.traverse(Lorg/apache/jorphan/collect
ions/HashTreeTraverser;)V
pc 0x00001e9035d0 sp 0x303f1b0 37:
org/apache/jmeter/threads/JMeterThread.run()V
pc 0x00001e90b320 sp 0x303f200 11: java/lang/Thread.run()V
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]