It means first is need to send request “1”, get answer and check it.
When wait 2 sec.
When send request “2”, get answer and check it.
In Gatling log it seems totally fine
13:32:35.980 [INFO ] i.g.c.a.UserStart - Start user #848
13:32:35.980 [INFO ] i.g.h.a.HttpRequestAction - Sending request ‘1’: scenario ‘load-test’, userId #848
13:32:38.082 [INFO ] i.g.h.a.HttpRequestAction - Sending request ‘2’: scenario ‘load-test’, userId #848
But on our Apache balancer first request was accepted only on 13:32:38
/var/log/apache2/ssl_access.log: - - [24/Dec/2013:13:32:38 +0400] “PUT /api/v2/… HTTP/1.1” 200 2587 “-” “GATLING/2.0”
And second request was accepted as expected with some ms delay after sending.
Aproximately 30% of all first requests has similar problem. First request accepted at same time or even later then second request.
Can it be Gatling problem or it has some to do with our Apache or network ?
Beware that time measurement is always tricky. For example, even if you use something low level such as Java’s System.nanotime, you always get a chance that different CPU cores won’t be absolutely in sync.
Main problem that some first requests late or even can be accepted by our balancer after second requests and it completely ruin test logic … But from gatling perspective seems that all working because in log number are right … Honestly, I don’t know where to find a trouble…
OK, so Gatling cannot be the culprit if request2 sometimes arrives before request1.
If it were only a matter a the pause not happening, I could have maybe blamed the old Akka HashWheelTimer impl, but there’s no way Gatling could interchange requests.