Jaap de Vos created GUACAMOLE-543: ------------------------------------- Summary: Docker guacamole client container breaks after restart/reboot Key: GUACAMOLE-543 URL: https://issues.apache.org/jira/browse/GUACAMOLE-543 Project: Guacamole Issue Type: Bug Components: guacamole-docker Affects Versions: 0.9.14 Environment: Debian 9.4 host machine Docker 18.03.0-ce Docker-compose 1.21.0
Setup with 4 containers: guacamole-client (named test-guacamole-client) guacamole-server (named test-guacamole-server) mysql (test-mysql) nginx (test-nginx) Docker compose used to build the application: version: '3' services: test-mysql: container_name: test-mysql image: mysql volumes: - /root/container/test-mysql/data:/var/lib/mysql networks: - guac_network restart: always test-guacamole-server: container_name: test-guacamole-server image: guacamole/guacd networks: - guac_network restart: always test-guacamole-client: depends_on: - test-mysql container_name: test-guacamole-client image: guacamole/guacamole networks: - guac_network environment: - GUACD_HOSTNAME=test-guacamole-server - GUACD_PORT=4822 - MYSQL_HOSTNAME=test-mysql - MYSQL_DATABASE=guacamole_db - MYSQL_USER=guacamole_user - MYSQL_PASSWORD=sterf restart: always test-nginx: depends_on: - test-guacamole_client container_name: test-nginx image: nginx volumes: - /root/container/test-nginx/conf.d:/etc/nginx/conf.d - /root/container/test-nginx/certs:/etc/nginx/certs networks: - guac_network ports: - "443:443" restart: always networks: guac_network: Reporter: Jaap de Vos The docker guacamole client container breaks after restarts and reboots. I am using the latest containers: guacamole/guacd guacamole/guacamole The client container can not withstand a reboot of the host system. The only way to fix it is to delete the image from my host machine and have docker-compose download it again. The output from "docker logs test-guacamole-client" when it's broken looks like this: 12-Apr-2018 10:01:04.722 INFO [http-nio-8080-exec-14] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/lodash/2.4.1/dist/lodash.min.js 12-Apr-2018 10:01:04.722 INFO [http-nio-8080-exec-1] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/jquery/2.1.3/dist/jquery.min.js 12-Apr-2018 10:01:04.727 INFO [http-nio-8080-exec-14] null.null Webjars resource requested: /META-INF/resources/webjars/angular/1.3.16/angular.min.js 12-Apr-2018 10:01:04.728 INFO [http-nio-8080-exec-8] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-cookies/1.3.16/angular-cookies.min.js 12-Apr-2018 10:01:04.730 INFO [http-nio-8080-exec-5] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-route/1.3.16/angular-route.min.js 12-Apr-2018 10:01:04.735 INFO [http-nio-8080-exec-17] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-touch/1.3.16/angular-touch.min.js 12-Apr-2018 10:01:04.739 INFO [http-nio-8080-exec-12] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/messageformat/1.0.2/messageformat.min.js 12-Apr-2018 10:01:04.743 INFO [http-nio-8080-exec-8] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-translate/2.8.0/angular-translate.min.js 12-Apr-2018 10:01:04.745 INFO [http-nio-8080-exec-15] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-translate-interpolation-messageformat/2.8.0/angular-translate-interpolation-messageformat.min.js 12-Apr-2018 10:01:04.746 INFO [http-nio-8080-exec-7] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/blob-polyfill/1.0.20150320/Blob.js 12-Apr-2018 10:01:04.748 INFO [http-nio-8080-exec-1] null.null Webjars resource requested: /META-INF/resources/webjars/angular-translate-loader-static-files/2.8.0/angular-translate-loader-static-files.min.js 12-Apr-2018 10:01:04.749 INFO [http-nio-8080-exec-12] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/filesaver/1.3.3/FileSaver.min.js 12-Apr-2018 10:01:04.753 INFO [http-nio-8080-exec-17] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-module-shim/0.0.4/angular-module-shim.js 12-Apr-2018 10:01:05.122 INFO [http-nio-8080-exec-5] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/jquery/2.1.3/dist/jquery.min.js 12-Apr-2018 10:01:05.130 INFO [http-nio-8080-exec-17] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/lodash/2.4.1/dist/lodash.min.js 12-Apr-2018 10:01:05.134 INFO [http-nio-8080-exec-8] null.null Webjars resource requested: /META-INF/resources/webjars/messageformat/1.0.2/messageformat.min.js 12-Apr-2018 10:01:05.135 INFO [http-nio-8080-exec-3] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-touch/1.3.16/angular-touch.min.js 12-Apr-2018 10:01:05.131 INFO [http-nio-8080-exec-7] null.null Webjars resource requested: /META-INF/resources/webjars/angular-route/1.3.16/angular-route.min.js 12-Apr-2018 10:01:05.135 INFO [http-nio-8080-exec-1] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-translate/2.8.0/angular-translate.min.js 12-Apr-2018 10:01:05.137 INFO [http-nio-8080-exec-17] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular/1.3.16/angular.min.js 12-Apr-2018 10:01:05.142 INFO [http-nio-8080-exec-5] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/blob-polyfill/1.0.20150320/Blob.js 12-Apr-2018 10:01:05.143 INFO [http-nio-8080-exec-15] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-cookies/1.3.16/angular-cookies.min.js 12-Apr-2018 10:01:05.144 INFO [http-nio-8080-exec-15] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/filesaver/1.3.3/FileSaver.min.js 12-Apr-2018 10:01:05.145 INFO [http-nio-8080-exec-9] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-translate-interpolation-messageformat/2.8.0/angular-translate-interpolation-messageformat.min.js 12-Apr-2018 10:01:05.149 INFO [http-nio-8080-exec-18] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-translate-loader-static-files/2.8.0/angular-translate-loader-static-files.min.js 12-Apr-2018 10:01:05.150 INFO [http-nio-8080-exec-1] org.webjars.servlet.WebjarsServlet.doGet Webjars resource requested: /META-INF/resources/webjars/angular-module-shim/0.0.4/angular-module-shim.js 12-Apr-2018 10:01:21.138 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 12-Apr-2018 10:01:21.139 INFO [Thread-5] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"] 12-Apr-2018 10:01:21.190 INFO [Thread-5] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina 12-Apr-2018 10:01:21.280 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [guacamole] appears to have started a thread named [com.google.inject.internal.util.$Finalizer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164) com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114) 12-Apr-2018 10:01:21.281 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [guacamole] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) 12-Apr-2018 10:01:21.281 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [guacamole] created a ThreadLocal with key of type [com.google.inject.internal.InjectorImpl$1] (value [com.google.inject.internal.InjectorImpl$1@99114b7]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@602daa57]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 12-Apr-2018 10:01:21.284 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [guacamole] created a ThreadLocal with key of type [com.google.inject.internal.InjectorImpl$1] (value [com.google.inject.internal.InjectorImpl$1@99114b7]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@19a086c8]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 12-Apr-2018 10:01:21.285 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [guacamole] created a ThreadLocal with key of type [com.google.inject.internal.InjectorImpl$1] (value [com.google.inject.internal.InjectorImpl$1@99114b7]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@79195515]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 12-Apr-2018 10:01:21.285 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [guacamole] created a ThreadLocal with key of type [com.google.inject.internal.InjectorImpl$1] (value [com.google.inject.internal.InjectorImpl$1@99114b7]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@782cd22d]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 12-Apr-2018 10:01:21.285 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [guacamole] created a ThreadLocal with key of type [com.google.inject.internal.InjectorImpl$1] (value [com.google.inject.internal.InjectorImpl$1@99114b7]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@755ea06d]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 12-Apr-2018 10:01:21.308 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"] 12-Apr-2018 10:01:21.310 INFO [Thread-5] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"] 12-Apr-2018 10:01:21.407 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"] 12-Apr-2018 10:01:21.408 INFO [Thread-5] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"] 12-Apr-2018 10:01:43.153 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.20 12-Apr-2018 10:01:43.155 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Feb 15 2015 18:10:42 UTC 12-Apr-2018 10:01:43.155 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.0.20.0 12-Apr-2018 10:01:43.155 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 12-Apr-2018 10:01:43.155 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.9.0-6-amd64 12-Apr-2018 10:01:43.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 12-Apr-2018 10:01:43.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/java-8-openjdk-amd64/jre 12-Apr-2018 10:01:43.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_40-internal-b27 12-Apr-2018 10:01:43.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 12-Apr-2018 10:01:43.157 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat 12-Apr-2018 10:01:43.157 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat 12-Apr-2018 10:01:43.158 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 12-Apr-2018 10:01:43.158 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 12-Apr-2018 10:01:43.158 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/usr/local/tomcat/endorsed 12-Apr-2018 10:01:43.159 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat 12-Apr-2018 10:01:43.159 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat 12-Apr-2018 10:01:43.159 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp 12-Apr-2018 10:01:43.160 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib 12-Apr-2018 10:01:43.249 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 12-Apr-2018 10:01:43.269 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 12-Apr-2018 10:01:43.271 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 12-Apr-2018 10:01:43.272 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 12-Apr-2018 10:01:43.273 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 263 ms 12-Apr-2018 10:01:43.296 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 12-Apr-2018 10:01:43.296 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.20 12-Apr-2018 10:01:43.317 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /usr/local/tomcat/webapps/guacamole.war 10:01:44.082 [localhost-startStop-1] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole". 10:01:44.147 [localhost-startStop-1] INFO o.a.g.rest.auth.HashTokenSessionMap - Sessions will expire after 60 minutes of inactivity. 10:01:44.263 [localhost-startStop-1] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole". 12-Apr-2018 10:01:44.463 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connection.ConnectionDirectory.add(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.464 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connection.ConnectionDirectory.update(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.484 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupDirectory.add(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.484 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupDirectory.update(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.518 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileDirectory.add(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.519 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileDirectory.update(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.525 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.user.UserDirectory.add(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 12-Apr-2018 10:01:44.526 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.auth.jdbc.user.UserDirectory.update(org.apache.guacamole.net.auth.Identifiable) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.mybatis.guice.transactional.TransactionalMethodInterceptor@9a3c87d]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. 10:01:44.986 [localhost-startStop-1] INFO o.a.g.extension.ExtensionModule - Extension "MySQL Authentication" loaded. 10:01:44.987 [localhost-startStop-1] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole". 10:01:45.054 [localhost-startStop-1] INFO o.a.g.t.w.WebSocketTunnelModule - Loading JSR-356 WebSocket support... 12-Apr-2018 10:01:45.116 WARNING [localhost-startStop-1] null.null Method [public void org.apache.guacamole.rest.user.UserResource.updateObject(java.lang.Object) throws org.apache.guacamole.GuacamoleException] is synthetic and is being intercepted by [org.apache.guacamole.rest.RESTExceptionWrapper@24c3a1db]. This could indicate a bug. The method may be intercepted twice, or may not be intercepted at all. -- This message was sent by Atlassian JIRA (v7.6.3#76005)