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]
