-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Mongodb health check fails on Quarkus 3.5.1 #36977
Comments
/cc @evanchooly (mongodb), @jmartisk (health), @loicmathieu (mongodb), @xstefank (health) |
No idea, I have not been in the loop that past few weeks. @xstefank any ideas? |
My guess is that it's related to #36434 that was backported in 3.5.1. That is very problematic for sure. @cescoffier does it ring a bell? |
Hum, that's exactly what I explained. We cannot rush such a change, it has consequences. We would need to check the mongo health check and see why it's blocking (why using an async signature). |
The signature is synchronous, so that check should not be called on an event loop. |
Okay, I will revert the change then. |
OK, I agree reverting is the best way now, I need to investigate why this happens. |
I reverted the culprit: #37001 . I will release 3.5.2 probably on Tuesday next week. |
Just to complete the full picture here. After investigation with @computerlove, we found out that the issue was caused by initialization of health check Unis on the blocking thread (through scheduler) which created MongoHealthCheck Uni wrapper wrongly to run on eventloop - https://github.com/quarkusio/quarkus/pull/37352/files#diff-52ee975c6ce19b708828df815121d4e32ac83ed2c6a2c2651753f01d4999bec6L31-L32. This was fixed in the last PR and this issue is no longer reproducible. |
Describe the bug
When we upgraded Quarkus from 3.5.0 to 3.5.1 /q/health fails with
the behavior is not present in quarkus:dev
Expected behavior
Health check does not fail because of IllegalStateException: The current thread cannot be blocked
Actual behavior
Health check does fail because of IllegalStateException: The current thread cannot be blocked
How to Reproduce?
Have not managed to create a reproducer.
In the environment this is running the proxy in front of the application seems to connect with http2 and keeping the connection alive.
Current attempts produce the following stack: (forcing return
false
inInfrastructure.canCallerThreadBeBlocked()
)Output of
uname -a
orver
No response
Output of
java -version
OpenJDK Runtime Environment (build 21+35-2513)
Quarkus version or git rev
3.5.1
Build tool (ie. output of
mvnw --version
orgradlew --version
)mvn
Additional information
No response
The text was updated successfully, but these errors were encountered: