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]

Reply via email to