-
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
Micrometer Vert.x Binder Locks Shutdown on devmode #16130
Comments
/cc @ebullient |
@mkouba it seems like we should be checking if the container is actually active at and if not, just proceed with the normal invocation, right? |
Also, @ebullient, is there a good reason why |
So IIUIC the A quick workaround is to set We could add a check in the |
Yes, it's invoked by Vert.x to undeploy the Metrics Verticle.
I agree, which is why I asked @ebullient why it is a CDI bean. It doesn't look like it should be. |
Looking. You guys have a few hours on me. Thank you @brunolmfg for chasing this down! I did notice this as well, but it only happened with master, and not in any of the other branches, and I was having a lot of problems w/ my system at the time, so I assumed it was "just me".. :sigh: The VertxMeterBinderAdapter (Singleton) is retrieved from Arc along two different paths in the recorder (once during static init, once during runtime init) to connect together bits that are available statically and bits that are available at runtime in a predictable order that still follows injection patterms. I could disentangle it and make it not a bean (probably a passed RuntimeValue instead), but that seemed to move away from what we usually expect (lifecycle managed by CDI). |
- related to quarkusio#16130 (cherry picked from commit 3170324)
Describe the bug
Using Micrometer extension the shutdown thread is locked on devmode waiting for Vert.x Binder to be undeployed.
Expected behavior
On devmode the application will shutdown when SIGINT (Ctrl+C) is fired.
Actual behavior
The application is locked waiting for Vert.x closure that's never fired due to an NPE on
InvocationInterceptor#monitor
.The stacktrace above isn't echoed on console but I've discovered that when debuging the verticle undeploy at
io.vertx.core.impl.DeploymentManager$DeploymentImpl#doUndeploy
line #701.If the Micrometer Vert.x Binder – enabled by defaut – is disabled the issue is bypassed.
quarkus.micrometer.binder.vertx.enabled=false
I've realized that in
1.12.2.Final
the methodVertxMetrics#verticleUnployed
isn't proxied and execute the default empty implementation at interfaceVertxMetrics
. From version1.13.0.CR1
, theVertxMetricsFactory
create a proxy bean that fire invocation interceptor, but ArC itself is already shuted down.To Reproduce
The project bellow was generated at Quarkus Code Start enabling the Micrometer extension.
https://github.com/brunolmfg/micrometer-vertx-binder-issue
Steps to reproduce the behavior:
mvn quarkus:dev
Configuration
No additional configuration applied.
Screenshots
Not applicable.
Environment
Output of
uname -a
orver
Output of
java -version
GraalVM version (if different from Java)
Not applicable.
Quarkus version or git rev
1.13.CR1
and1.13.0.Final
In
1.12.2.Final
is non-reproducible.Build tool (ie. output of
mvnw --version
orgradlew --version
)The text was updated successfully, but these errors were encountered: