openanalytics/shinyproxy

Shinyproxy doesn't shut the containers

Opened this issue · 1 comments

I was trying the new version of shiny proxy 3.1.1 and when I log out from an initialized application the container is not removed.
The setup is with podman instead of docker using this

docker:
        internal-networking: false
        url: http://localhost:2375

from here #385

Here is the log I got:

eu.openanalytics.containerproxy.ContainerProxyException: Failed to stop container
	at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.stopProxy(AbstractContainerBackend.java:145) ~[containerproxy-1.1.1.jar!/:1.1.1]
	at eu.openanalytics.containerproxy.backend.dispatcher.DefaultProxyDispatcher.stopProxy(DefaultProxyDispatcher.java:54) ~[containerproxy-1.1.1.jar!/:1.1.1]
	at eu.openanalytics.containerproxy.service.ProxyService.lambda$stopProxy$7(ProxyService.java:342) ~[containerproxy-1.1.1.jar!/:1.1.1]
	at eu.openanalytics.containerproxy.service.ProxyService.lambda$action$12(ProxyService.java:638) ~[containerproxy-1.1.1.jar!/:1.1.1]
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: org.mandas.docker.client.exceptions.DockerRequestException: Request error: GET http://localhost:2375/containers/94ee70a3d018494caa684179544ec41495622f544aab16bd525cc789aca45c72/json: 200
	at org.mandas.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:2564) ~[docker-client-7.0.8-OA-3.jar!/:na]
	at org.mandas.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2438) ~[docker-client-7.0.8-OA-3.jar!/:na]
	at org.mandas.docker.client.DefaultDockerClient.inspectContainer(DefaultDockerClient.java:827) ~[docker-client-7.0.8-OA-3.jar!/:na]
	at eu.openanalytics.containerproxy.backend.docker.DockerEngineBackend.doStopProxy(DockerEngineBackend.java:233) ~[containerproxy-1.1.1.jar!/:1.1.1]
	at eu.openanalytics.containerproxy.backend.AbstractContainerBackend.stopProxy(AbstractContainerBackend.java:143) ~[containerproxy-1.1.1.jar!/:1.1.1]
	... 8 common frames omitted
Caused by: jakarta.ws.rs.client.ResponseProcessingException: com.fasterxml.jackson.databind.JsonMappingException: Cannot invoke "java.lang.Iterable.iterator()" because "elements" is null
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 481] (through reference chain: org.mandas.docker.client.messages.ImmutableContainerInfo$Builder["State"]->org.mandas.docker.client.messages.ImmutableContainerState$Builder["Health"]->org.mandas.docker.client.messages.ImmutableContainerState$Health$Builder["Log"])
	at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:760) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$1(JerseyInvocation.java:687) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:709) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:703) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:205) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:391) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:703) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:686) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:422) ~[jersey-client-3.1.6.jar!/:na]
	at org.mandas.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2436) ~[docker-client-7.0.8-OA-3.jar!/:na]
	... 11 common frames omitted
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Cannot invoke "java.lang.Iterable.iterator()" because "elements" is null
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 481] (through reference chain: org.mandas.docker.client.messages.ImmutableContainerInfo$Builder["State"]->org.mandas.docker.client.messages.ImmutableContainerState$Builder["Health"]->org.mandas.docker.client.messages.ImmutableContainerState$Health$Builder["Log"])
	at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:276) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty._throwAsIOE(SettableBeanProperty.java:630) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty._throwAsIOE(SettableBeanProperty.java:618) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:173) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:293) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:158) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:293) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:158) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:293) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2079) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1229) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	at org.glassfish.jersey.jackson.internal.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:829) ~[jersey-media-json-jackson-3.1.6.jar!/:na]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:235) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:214) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:134) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1072) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:657) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:591) ~[jersey-common-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:298) ~[jersey-client-3.1.6.jar!/:na]
	at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:757) ~[jersey-client-3.1.6.jar!/:na]
	... 22 common frames omitted
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Iterable.iterator()" because "elements" is null
	at org.mandas.docker.client.messages.ImmutableContainerState$Health$Builder.addAllLog(ImmutableContainerState.java:1296) ~[docker-client-7.0.8-OA-3.jar!/:na]
	at org.mandas.docker.client.messages.ImmutableContainerState$Health$Builder.log(ImmutableContainerState.java:1287) ~[docker-client-7.0.8-OA-3.jar!/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeSetAndReturn(MethodProperty.java:170) ~[jackson-databind-2.15.4.jar!/:2.15.4]
	... 42 common frames omitted

2024-07-05T09:16:32.127Z  INFO 1 --- [ProxyService-16] e.o.containerproxy.service.ProxyService  : [user=me_me_but_me proxyId=8e2507f6-207e-4638-a044-8afd2fa71b4f specId=01_dashboard] Proxy released

Hi, at the time of writing ShinyProxy does not support podman. We hoped that we the release of 3.1.1 the support might be better (#385 (comment)), however, looking at the above error, there are still some incompatibles between ShinyProxy and podman.

For the time being we advice to use Docker.