-
Notifications
You must be signed in to change notification settings - Fork 2k
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
JVM stops right after deploying virtual verticle #5052
Comments
Quick analysis: when the virtual thread model is used, no event loop is created before the http server is started. Vert.x threads are non-daemon by default, and they prevent the JVM from shutting down. In the sample before, the application reaches the end of the main method before the virtual thread triggers the creation of the http server. That is why the JVM shut downs early. |
cc @vietj Many applications rely on the fact that the JVM will stay alive even after the main thread reaches the end of the method. |
yeah I found this issue too a while ago, I don't know yet what is the best way to address it. I believe that applications should not rely on vertx though |
I just found that this (funny?) behavior: vertx.deployVerticle(new MainVerticle(), deploymentOptions) to: vertx.deployVerticle(MainVerticle.class.getName(), deploymentOptions) Then the JVM doesn't stop because Vert.x starts an event loop
I understand. On the other hand, we have so many examples which look like the example in the description. |
Perhaps we can find the difference between deploying a verticle with a class name or with a class or an instance, and make sure it always works like deploying using a class name. |
I believe we should start to provide different examples when the code is started from a non vertx thread, e.g. vertx.deployVerticle(...).await(); would make sense to me
However |
Consider this application:
The JVM stops before the server is bound. It does not happen if the verticle is deployed using the event loop or the worker threading model.
The text was updated successfully, but these errors were encountered: