If I remember correctly, the pairing structure allows JMeter to 
remember which elements have been compiled already and which 
haven't.  I can't remember why that was needed, but it was, and 
removing it will surely break some things.

-Mike

On 20 Oct 2003 at 13:26, BAZLEY, Sebastian wrote:

> Oops! I removed way too much: pairing is not used for testing, but it does
> seem to be write-only.
> Perhaps it is being used to keep references alive?
> Why is it static?
> 
> I'm now unsure as to what any of the apparently unused items are 
for, so
> I've put it all back, but made the accesses to pairing 
synchronized. This
> will hopefully help.
> 
> S.
> -----Original Message-----
> From: BAZLEY, Sebastian 
> Sent: 20 October 2003 10:32
> To: 'JMeter Developers List'
> Subject: RE: Threads sometimes get stuck in startup
> 
> 
> 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/jorp
han/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: jmeter-dev-
[EMAIL PROTECTED]
> For additional commands, e-mail: jmeter-dev-
[EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-dev-
[EMAIL PROTECTED]
> For additional commands, e-mail: jmeter-dev-
[EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-dev-
[EMAIL PROTECTED]
> For additional commands, e-mail: jmeter-dev-
[EMAIL PROTECTED]
> 




--
Michael Stover
[EMAIL PROTECTED]
Yahoo IM: mstover_ya
ICQ: 152975688
AIM: mstover777

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to