Description:
It was observed that the servers getting unresponsive when the transaction scenario is executed using Vegeta tool. Only a limited amount of requests got successful.
Execute the service using vegeta tool
echo "GET http://192.168.11.11:8888" | ./vegeta attack -duration=100s | tee results.bin | ./vegeta report
Affected Versions:
ballerina-0.970.0-rc1 and ballerina-runtime-0.970.0
OS, DB, other environment details and versions:
Ubuntu 15.10
Observations
Following errors were observed in the following ballerina services
initiator.bal
[2018-04-27 17:01:31,865] WARN {org.wso2.transport.http.netty.sender.TargetHandler} - Idle timeout has reached hence closing the connection 2a818176
[2018-04-27 17:01:31,870] WARN {org.wso2.transport.http.netty.sender.TargetHandler} - Idle timeout has reached hence closing the connection 9ce244de
Participant1.bal
[2018-04-27 17:01:30,724] WARN {org.wso2.transport.http.netty.sender.TargetHandler} - Idle timeout has reached hence closing the connection 6814375b
[2018-04-27 17:01:30,724] ERROR {org.ballerinalang.net.http.HttpUtil} - call failed
[2018-04-27 17:01:30,727] ERROR {org.wso2.transport.http.netty.common.Util} - Remote client closed the connection before completing outbound response
java.io.IOException: Remote client closed the connection before completing outbound response
at org.wso2.transport.http.netty.common.Util.lambda$checkForResponseWriteStatus$9(Util.java:599)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:481)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:163)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:93)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:28)
at org.wso2.transport.http.netty.common.Util.checkForResponseWriteStatus(Util.java:595)
at org.wso2.transport.http.netty.contractimpl.HttpOutboundRespListener.writeOutboundResponseHeaderAndBody(HttpOutboundRespListener.java:187)
at org.wso2.transport.http.netty.contractimpl.HttpOutboundRespListener.writeOutboundResponse(HttpOutboundRespListener.java:138)
at org.wso2.transport.http.netty.contractimpl.HttpOutboundRespListener.lambda$null$35(HttpOutboundRespListener.java:94)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:745)
Participnat2.bal
[2018-04-27 17:01:30,685] ERROR {org.wso2.transport.http.netty.common.Util} - Remote client closed the connection before completing outbound response
java.io.IOException: Remote client closed the connection before completing outbound response
at org.wso2.transport.http.netty.common.Util.lambda$checkForResponseWriteStatus$9(Util.java:599)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:481)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:163)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:93)
at io.netty.channel.DefaultChannelPromise.addListener(DefaultChannelPromise.java:28)
at org.wso2.transport.http.netty.common.Util.checkForResponseWriteStatus(Util.java:595)
at org.wso2.transport.http.netty.contractimpl.HttpOutboundRespListener.writeOutboundResponseHeaderAndBody(HttpOutboundRespListener.java:187)
at org.wso2.transport.http.netty.contractimpl.HttpOutboundRespListener.writeOutboundResponse(HttpOutboundRespListener.java:138)
at org.wso2.transport.http.netty.contractimpl.HttpOutboundRespListener.lambda$null$35(HttpOutboundRespListener.java:94)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:745)
Vegeta Tool outcome
wso2@ubuntu:~/VEGETA$ echo "GET http://10.100.8.9:8080" | ./vegeta attack -duration=120s | tee results.bin | ./vegeta report
Requests [total, rate] 6000, 50.01
Duration [total, attack, wait] 2m22.261331689s, 1m59.979999615s, 22.281332074s
Latencies [mean, 50, 95, 99, max] 20.411990535s, 30.001887206s, 30.007298356s, 30.150733445s, 31.080372027s
Bytes In [total, mean] 0, 0.00
Bytes Out [total, mean] 0, 0.00
Success [ratio] 0.02%
Status Codes [code:count] 200:1 0:5999
Error Set:
Get http://10.100.8.9:8080: dial tcp 0.0.0.0:0->10.100.8.9:8080: socket: too many open files
Get http://10.100.8.9:8080: net/http: timeout awaiting response headers
We have done significant design changes to transaction implementation and syntax in swan lake hence above scenario is outdated. I am closing this issue please reopen it if you have any concerns on this.
Description: It was observed that the servers getting unresponsive when the transaction scenario is executed using Vegeta tool. Only a limited amount of requests got successful.
Steps to reproduce:
echo "GET http://192.168.11.11:8888" | ./vegeta attack -duration=100s | tee results.bin | ./vegeta report
Affected Versions: ballerina-0.970.0-rc1 and ballerina-runtime-0.970.0
OS, DB, other environment details and versions: Ubuntu 15.10
Observations Following errors were observed in the following ballerina services initiator.bal
Participant1.bal
Participnat2.bal
Vegeta Tool outcome
Note - This issue did not observe with the jmeter