When I try to request with 20 threads on the same time, I use the Synchronizing Timer and loop the request. --If the request is slow, finished successfully. --Bug if the requuest is quick, all of the requests is stoped all along, but the threads still exist.
(In reply to comment #0) > When I try to request with 20 threads on the same time, I use the Synchronizing > Timer and loop the request. > --If the request is slow, finished successfully. > --Bug if the requuest is quick, all of the requests is stoped all along, but > the threads still exist. I concur there is a problem here. With a very simple test plan (the skeleton of a test plan in which all users initialise and then synchronize before proceeding): UDV threadCount = 5, iterationCount = 12 Threadgroup (${iterationCount}, ${threadCount)} Synchronize (${threadCount}} Java sampler to write to log the test gives unpredictable results - in different runs I've seen the test hang without doing any executions, do 25 executions, do 35 executions etc. If I remove the synchronisation controller I reliably get 60 executions as expected.
I don't have any problems with the Synch Timer. What OS and JVM are you using? Are you experiencing the problem in GUI, non-GUI or client-server modes?
The synchronizing timer has the following problems: -It checks whether JMeterContextService.getNumberOfThreads number of threads are waiting. If a ramp up period was chosen, getNumberOfThreads returns a lower number than the expected number of total threads. Better would be to use getTotalThreads() -TimerCounter is never reset to 0, meaning that later test runs never sync. -If multiple thread groups are used in a test, getNumberOfThreads returns the number of threads of all Thread Groups, the synchronizing timer is however local to one thread group and therefore does not reach the number of threads.
I agree that the counter ought to be reset. I'm not so sure that waiting for total activeThreads is the correct behaviour. If there is a single thread-group, this would prevent the timer from being used to wait for all the threads to start. I think it would be better to use the total number of threads in the thread group.
URL: http://svn.apache.org/viewvc?rev=1025799&view=rev Log: Bug 45703 - Synchronizing Timer Modified: jakarta/jmeter/trunk/src/components/org/apache/jmeter/timers/SyncTimer.java jakarta/jmeter/trunk/xdocs/changes.xml Will be in nightly builds from r1025799
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2148