-
Notifications
You must be signed in to change notification settings - Fork 753
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High error rate for HTTPs loadtests with 200 concurrent users #42628
Comments
Tried running the existing load tests with 200 concurrent requests using the workflow. Workflow run: https://github.com/ballerina-platform/ballerina-performance-cloud/actions/runs/8794152427 There were some significant differences between the code used in the https_passthrough load-test and the code used in the h1_h1_passthrough load-test.
So I tried by adding two more load-tests: Workflow run: https://github.com/ballerina-platform/ballerina-performance-cloud/actions/runs/8797283914 I have tried to reproduce this issue locally using the the code in the https_passthrough and running load-test with 200 concurrent users for 5 minutes. But I could not reproduce the issue. @xlight05 Can we check on the configurations used to run this load-tests? |
Had an offline chat on this. We were able to get a stand dump when this issue was reproduced. Strand dump - https://gist.github.com/xlight05/9ef16bbe1ea7f733d43a398429920a32 |
I was able to reproduce this issue with the help of @xlight05 in a constraint environment. Please find the below steps:
Please note that this issue is only reproducible when you make multiple requests at a small interval. Strangely, if we make only one request at first and wait for the response then the subsequent requests are passing. I have checked the following:
So it seems the issue is coming from lang with update 9 changes. Adding @HindujaB @gabilang to check on this |
I was able to reduce the reproducer code with this: (no need for docker, just use import ballerina/http;
listener http:Listener securedEP = new (9090);
final http:Client nettyEP = check new ("http://localhost:8688");
service /passthrough on securedEP {
resource function post .(http:Request clientRequest) returns http:Response|error {
return nettyEP->/'service/EchoService.post(clientRequest);
}
} But in order to reproduce, I have to use 1000 users with 5s ramp-up period. (I checked the similar configuration with update 8 service and it was working without any hanging.) If I remove the Please note that I have removed SSL here, so not 100% sure that both of these are related. (With SSL also the service is hanging). But I think with SSL, the probability of this issue occurrence is high. When hanging most of the jbal threads are in Strand dump: https://gist.github.com/TharmiganK/932d0274a391aa55f8fbe9e9da5135a1 |
This issue is NOT closed with a proper Reason/ label. Make sure to add proper reason label before closing. Please add or leave a comment with the proper reason label now. |
Description:
$Subject.
This works fine for the 60 user case.
Applies to both passthrough and transformation usecase we have.
https://github.com/ballerina-platform/ballerina-performance-cloud/actions/runs/8782386068/job/24096556961
https://github.com/ballerina-platform/ballerina-performance-cloud/blob/1d735a28d62a06265a7ccad3c72bfa78764b476a/load-tests/https_passthrough/results/summary.csv#L2609
Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):
Suggested Labels (optional):
Suggested Assignees (optional):
The text was updated successfully, but these errors were encountered: