-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Service Becomes Unhealthy Under Load After Upgrading from Quarkus 3.13 to 3.15+ #48052
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
Comments
Although I understand it's a tall order, I don't see a way for us to be able to get to the root of the problem unless we have a way to easily reproduce the issue. |
It would also help a lot if you could try to pinpoint the exact version in which things are starting to go wrong. |
Versions where the problem started:
To clarify: no changes were made to our business logic, configurations, or database schemas between these versions. We only bumped the Quarkus BOM parent in our pom.xml. This particular service:
Due to internal constraints and the sensitivity of our infrastructure, we unfortunately cannot provide a public reproducer. This issue is currently blocking us from upgrading this service to the latest Quarkus version. We’ve already migrated around 40 other services to 3.20 without issue, but this one behaves differently due to its heavier reliance on Hibernate and high-load DB reads. At this point, we’re trying to identify whether the root cause is more likely related to:
Here you can find the list of quarkus dependencies using in this app: |
Thanks for the additional input, but as you can guess, it's impossible to make any kind of educated guess about what the cause could using only this information |
Yeah, it will require some detective work on your side. First try to find out the micro that is problematic: try with 3.14.0.CR1, then 3.14.0, 3.14.1... That will narrow things down a bit. Then when the service starts going berserk, it might be good to get a thread dump (using I don't think it will give us the answer but it might help narrowing down what's wrong and could lead to you being able to assemble a reproducer. |
Describe the bug
After upgrading Quarkus from 3.13 to 3.15 LTS, our application becomes unhealthy under load shortly after startup.
We operate a high-throughput backend service that performs dynamic SQL queries against an RDS Postgres database. Caching is not viable due to the high variability of requests.
The service starts fine and reports healthy, but as soon as requests start hitting the application (around 150 RPS, with query latency typically under 200ms), the service quickly becomes unresponsive and unhealthy.
This behavior was not present in 3.13, but starts in 3.15 and persists through 3.20 LTS. Our tests suggest the regression is introduced between 3.13 and 3.15.
JDBC config (Agroal):
Notable changes between 3.13 and 3.15
We suspect the issue may be linked to internal changes in these versions:
We would appreciate guidance on whether these changes could impact connection handling or startup load performance.
Expected behavior
The application should remain healthy and performant under load (e.g., 200 RPS), as it does on Quarkus 3.13.
Actual behavior
On Quarkus 3.15+:
How to Reproduce?
The issue can be observed by:
Load test comparison:
Quarkus 3.13
VUs: 25–40
Duration: ~1m30s
Successful iterations: 4330, 6244, 5229
Application remains healthy
Quarkus 3.15
VUs: 25–40
Duration: ~1m30s
Successful iterations: 44, 50, 224
Service becomes unhealthy
Output of
uname -a
orver
No response
Output of
java -version
OpenJDK Runtime Environment Corretto-21.0.6.7.1 (build 21.0.6+7-LTS
Quarkus version or git rev
3.15
Build tool (ie. output of
mvnw --version
orgradlew --version
)Apache Maven 3.9.9
Additional information
No response
The text was updated successfully, but these errors were encountered: