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>