You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by Philippe Mouawad <p....@ubik-ingenierie.com> on 2014/10/11 23:48:38 UTC

Issue in IfController behaviour

Hello,
I think there is currently a big issue in the way IfController works.
The issue is located in GenericController#reInitializeSubController (only
called by IfController).

This method was introduced to fix :

   - https://issues.apache.org/bugzilla/show_bug.cgi?id=50032

The Algorithm currently iterates of test elements following  the next()
(used by regular sampling ) to get Controllers and reset them.

The algorithm has many issues:

   - Stackoverflow whenever first child of IfController is a LoopControler,
   a While Controller, even SimpleController provided it contains somewhere a
   WhileController or LoopControler....
   - It triggers notifications of Listener (which was workaround by
   introducing ThreadContext#isReinitializingSubControllers) breaking
   TransactionController
   - It also hold a performance issue as we in fact need to iterated on
   children of Controller to find Controllers and call
   reInitializeSubController() on it


Related bugs are the following:

   - https://issues.apache.org/bugzilla/show_bug.cgi?id=50032
   - https://issues.apache.org/bugzilla/show_bug.cgi?id=56160
   - https://issues.apache.org/bugzilla/show_bug.cgi?id=52496
   - https://issues.apache.org/bugzilla/show_bug.cgi?id=53768



-- 
Regards.
Philippe M.
@phimdot

Re: Issue in IfController behaviour

Posted by Philippe Mouawad <p....@ubik-ingenierie.com>.
Hi,
I fixed the issue within
https://issues.apache.org/bugzilla/show_bug.cgi?id=56160.

Your reviews and tests are really welcome as this part of JMeter is complex
and changes could introduce regressions.

I added 2 Junit tests to ensure previously fixed bugs were still fixed.
More Junit test cases would be great.

By the way I fixed an issue in existing JUnit of TestIfController where
initialize was not called on Root Controller.

Regards
Philippe

On Sat, Oct 11, 2014 at 11:48 PM, Philippe Mouawad <
p.mouawad@ubik-ingenierie.com> wrote:

> Hello,
> I think there is currently a big issue in the way IfController works.
> The issue is located in GenericController#reInitializeSubController (only
> called by IfController).
>
> This method was introduced to fix :
>
>    - https://issues.apache.org/bugzilla/show_bug.cgi?id=50032
>
> The Algorithm currently iterates of test elements following  the next()
> (used by regular sampling ) to get Controllers and reset them.
>
> The algorithm has many issues:
>
>    - Stackoverflow whenever first child of IfController is a
>    LoopControler, a While Controller, even SimpleController provided it
>    contains somewhere a WhileController or LoopControler....
>    - It triggers notifications of Listener (which was workaround by
>    introducing ThreadContext#isReinitializingSubControllers) breaking
>    TransactionController
>    - It also hold a performance issue as we in fact need to iterated on
>    children of Controller to find Controllers and call
>    reInitializeSubController() on it
>
>
> Related bugs are the following:
>
>    - https://issues.apache.org/bugzilla/show_bug.cgi?id=50032
>    - https://issues.apache.org/bugzilla/show_bug.cgi?id=56160
>    - https://issues.apache.org/bugzilla/show_bug.cgi?id=52496
>    - https://issues.apache.org/bugzilla/show_bug.cgi?id=53768
>
>
>
> --
> Regards.
> Philippe M.
> @phimdot
>



-- 
Cordialement.
Philippe Mouawad.
Ubik-Ingénierie

UBIK LOAD PACK Web Site <http://www.ubikloadpack.com/>

UBIK LOAD PACK on TWITTER <https://twitter.com/ubikloadpack>