flow icon indicating copy to clipboard operation
flow copied to clipboard

Occasionally getting "Failed to cancel resource" when shutting down the development server

Open Legioth opened this issue 1 year ago • 0 comments

Description of the bug

Sometimes when shutting down the development server, there's an error like this in the console:

2024-02-29T10:33:12.275+02:00 ERROR 79839 --- [ionShutdownHook] o.atmosphere.cpr.AsynchronousProcessor   : Failed to cancel resource: ed5ec82c-adfc-4acb-93ef-4eb03ca51ed3

java.lang.IllegalStateException: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6a24b490 has been closed already
	at org.springframework.context.support.AbstractApplicationContext.assertBeanFactoryActive(AbstractApplicationContext.java:1215) ~[spring-context-6.1.4.jar:6.1.4]
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1376) ~[spring-context-6.1.4.jar:6.1.4]
	at com.vaadin.flow.spring.SpringLookupInitializer$SpringLookup.lookup(SpringLookupInitializer.java:105) ~[vaadin-spring-24.4.0.alpha13.jar:na]
	at com.vaadin.flow.internal.BrowserLiveReloadAccessor.lambda$getLiveReloadFromContext$1(BrowserLiveReloadAccessor.java:88) ~[flow-server-24.4.0.alpha13.jar:24.4.0.alpha13]
	at java.base/java.util.Optional.map(Optional.java:260) ~[na:na]
	at com.vaadin.flow.internal.BrowserLiveReloadAccessor.getLiveReloadFromContext(BrowserLiveReloadAccessor.java:88) ~[flow-server-24.4.0.alpha13.jar:24.4.0.alpha13]
	at com.vaadin.flow.internal.BrowserLiveReloadAccessor.getLiveReloadFromService(BrowserLiveReloadAccessor.java:70) ~[flow-server-24.4.0.alpha13.jar:24.4.0.alpha13]
	at com.vaadin.flow.server.communication.PushHandler.handleConnectionLost(PushHandler.java:394) ~[flow-server-24.4.0.alpha13.jar:24.4.0.alpha13]
	at com.vaadin.flow.server.communication.PushHandler.connectionLost(PushHandler.java:368) ~[flow-server-24.4.0.alpha13.jar:24.4.0.alpha13]
	at com.vaadin.flow.server.communication.PushAtmosphereHandler.onStateChange(PushAtmosphereHandler.java:62) ~[flow-server-24.4.0.alpha13.jar:24.4.0.alpha13]
	at org.atmosphere.cpr.AsynchronousProcessor.invokeAtmosphereHandler(AsynchronousProcessor.java:538) ~[atmosphere-runtime-3.0.3.slf4jvaadin2.jar:3.0.3.slf4jvaadin2]
	at org.atmosphere.cpr.AsynchronousProcessor.completeLifecycle(AsynchronousProcessor.java:480) ~[atmosphere-runtime-3.0.3.slf4jvaadin2.jar:3.0.3.slf4jvaadin2]
	at org.atmosphere.cpr.AsynchronousProcessor.endRequest(AsynchronousProcessor.java:584) ~[atmosphere-runtime-3.0.3.slf4jvaadin2.jar:3.0.3.slf4jvaadin2]
	at org.atmosphere.websocket.DefaultWebSocketProcessor.executeClose(DefaultWebSocketProcessor.java:689) ~[atmosphere-runtime-3.0.3.slf4jvaadin2.jar:3.0.3.slf4jvaadin2]
	at org.atmosphere.websocket.DefaultWebSocketProcessor.close(DefaultWebSocketProcessor.java:635) ~[atmosphere-runtime-3.0.3.slf4jvaadin2.jar:3.0.3.slf4jvaadin2]
	at org.atmosphere.container.JSR356Endpoint.onClose(JSR356Endpoint.java:318) ~[atmosphere-runtime-3.0.3.slf4jvaadin2.jar:3.0.3.slf4jvaadin2]
	at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:662) ~[tomcat-embed-websocket-10.1.18.jar:10.1.18]
	at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:588) ~[tomcat-embed-websocket-10.1.18.jar:10.1.18]
	at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:554) ~[tomcat-embed-websocket-10.1.18.jar:10.1.18]
	at org.apache.tomcat.websocket.WsSession.close(WsSession.java:542) ~[tomcat-embed-websocket-10.1.18.jar:10.1.18]
	at org.apache.tomcat.websocket.WsWebSocketContainer.destroy(WsWebSocketContainer.java:1019) ~[tomcat-embed-websocket-10.1.18.jar:10.1.18]
	at org.apache.tomcat.websocket.server.WsContextListener.contextDestroyed(WsContextListener.java:46) ~[tomcat-embed-websocket-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4482) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5109) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:242) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1348) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1337) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na]
	at org.apache.catalina.core.ContainerBase.stopInternal(ContainerBase.java:931) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:242) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1348) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1337) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na]
	at org.apache.catalina.core.ContainerBase.stopInternal(ContainerBase.java:931) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:242) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.StandardService.stopInternal(StandardService.java:496) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:242) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.java:969) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:242) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.apache.catalina.startup.Tomcat.stop(Tomcat.java:498) ~[tomcat-embed-core-10.1.18.jar:10.1.18]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.stopTomcat(TomcatWebServer.java:297) ~[spring-boot-3.2.2.jar:3.2.2]
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.destroy(TomcatWebServer.java:370) ~[spring-boot-3.2.2.jar:3.2.2]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:177) ~[spring-boot-3.2.2.jar:3.2.2]
	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1090) ~[spring-context-6.1.4.jar:6.1.4]
	at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) ~[spring-boot-3.2.2.jar:3.2.2]
	at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
	at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) ~[spring-boot-3.2.2.jar:3.2.2]
	at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]

The error is harmless in the sense that the process is still terminated but it's still a bit annoying and might be an indication of other issues hiding somewhere.

No similar error was observed despite doing multiple test runs with Vaadin 24.3.5

Expected behavior

No exceptions at shutdown

Minimal reproducible example

  1. Get skeleton-starter-flow-spring from e.g. start.vaadin.com
  2. Update to use Vaadin 24.4.0.alpha7
  3. Launch from the terminal with mvn
  4. Wait until the application is opened in the browser and then close the browser tab
  5. Terminate the process with ^C
  6. If the error isn't shown, then try repeating steps 3 - 5 a couple of times since this doesn't happen every time

Versions

  • Vaadin / Flow version: Vaadin 24.4.0.alpha7
  • Java version: 21
  • OS version: MacOS 13.6.3

Legioth avatar Feb 29 '24 08:02 Legioth