abesnier / docker-guacamole

A self-contained guacamole docker container for x64. Remotely connect over SSH, RDP or VNC using HTML5.
https://hub.docker.com/r/abesnier/guacamole
GNU General Public License v3.0
78 stars 14 forks source link

`1.5.2` fails to start #19

Closed Zixim closed 1 year ago

Zixim commented 1 year ago

referring to #18

the container is running fine on a 5week old image, possibly 1.5.0 ?

These are the details for that image ``` "Env": [ "PATH=/usr/lib/postgresql/13/bin:/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "JAVA_HOME=/opt/java/openjdk", "LANG=en_US.UTF-8", "LANGUAGE=en_US:en", "LC_ALL=en_US.UTF-8", "JAVA_VERSION=jdk-11.0.19+7", "CATALINA_HOME=/usr/local/tomcat", "TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib", "LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib", "GPG_KEYS=48F8E69F6390C9F25CFEDCD268248959359E722B A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243", "TOMCAT_MAJOR=9", "TOMCAT_VERSION=9.0.74", "TOMCAT_SHA512=0e173fc2a76404c41c571c50a1956a2b867870d767200bd30f48d89bf04a4b6337f12e6577415da932cd2dfef9b4e9e9fdd52bd873afb06c6258b0e64244a44e", "GUACAMOLE_HOME=/config/guacamole", "PGDATA=/config/postgres", "POSTGRES_USER=guacamole", "POSTGRES_DB=guacamole_db", "S6OVERLAY_VER=3.1.4.2", "POSTGREJDBC_VER=42.6.0", "GUAC_DOWN_PATH=https://dlcdn.apache.org/guacamole", "GUAC_VER=1.5.1", "GUAC_VER_PATH=1.5.1", "PG_MAJOR=13", "GUACD_LOG_LEVEL=info", "S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0" ], ```

When I now pull 1.5.2, the container doesn't start properly.

docker logs for container ``` root@docker:~# docker logs guacamole-guacamole-1 s6-rc: info: service s6rc-fdholder: starting s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service s6rc-fdholder successfully started s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting cont-init: info: running /etc/cont-init.d/30-defaults.sh cont-init: info: /etc/cont-init.d/30-defaults.sh exited 0 cont-init: info: running /etc/cont-init.d/40-postgres.sh Database already configured cont-init: info: /etc/cont-init.d/40-postgres.sh exited 0 cont-init: info: running /etc/cont-init.d/50-extensions cont-init: info: /etc/cont-init.d/50-extensions exited 0 s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service syslogd-prepare: starting s6-rc: info: service syslogd-prepare successfully started s6-rc: info: service syslogd-log: starting s6-rc: info: service syslogd-log successfully started s6-rc: info: service syslogd: starting s6-rc: info: service syslogd successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun guacamole (no readiness notification) services-up: info: copying legacy longrun guacd (no readiness notification) services-up: info: copying legacy longrun postgres (no readiness notification) s6-rc: info: service legacy-services successfully started Starting postgres... Starting guacamole guacd... /var/run/postgresql:5432 - no response Waiting for postgres to come up... guacd[154]: INFO: Guacamole proxy daemon (guacd) version 1.5.2 started guacd[154]: INFO: Listening on host 0.0.0.0, port 4822 2023-06-14 10:24:41.226 UTC [153] LOG: starting PostgreSQL 13.11 (Ubuntu 13.11-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, 64-bit 2023-06-14 10:24:41.228 UTC [153] LOG: listening on IPv4 address "127.0.0.1", port 5432 2023-06-14 10:24:41.228 UTC [153] LOG: could not bind IPv6 address "::1": Cannot assign requested address 2023-06-14 10:24:41.228 UTC [153] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. 2023-06-14 10:24:41.251 UTC [153] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 2023-06-14 10:24:41.278 UTC [156] LOG: database system was shut down at 2023-06-14 10:21:57 UTC 2023-06-14 10:24:41.303 UTC [153] LOG: database system is ready to accept connections 2023-06-14 10:24:42.082 UTC [164] FATAL: role "root" does not exist /var/run/postgresql:5432 - accepting connections Starting guacamole client... NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 14-Jun-2023 12:24:43.028 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.76 14-Jun-2023 12:24:43.035 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 5 2023 07:17:04 UTC 14-Jun-2023 12:24:43.035 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.76.0 14-Jun-2023 12:24:43.035 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 14-Jun-2023 12:24:43.036 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.19.0-24-amd64 14-Jun-2023 12:24:43.036 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 14-Jun-2023 12:24:43.036 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/java/openjdk 14-Jun-2023 12:24:43.037 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.19+7 14-Jun-2023 12:24:43.038 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium 14-Jun-2023 12:24:43.038 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat 14-Jun-2023 12:24:43.038 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat 14-Jun-2023 12:24:43.068 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 14-Jun-2023 12:24:43.068 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 14-Jun-2023 12:24:43.069 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED 14-Jun-2023 12:24:43.069 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 14-Jun-2023 12:24:43.070 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 14-Jun-2023 12:24:43.070 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 14-Jun-2023 12:24:43.071 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 14-Jun-2023 12:24:43.071 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 14-Jun-2023 12:24:43.071 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 14-Jun-2023 12:24:43.071 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 14-Jun-2023 12:24:43.072 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 14-Jun-2023 12:24:43.072 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat 14-Jun-2023 12:24:43.072 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat 14-Jun-2023 12:24:43.073 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp 14-Jun-2023 12:24:43.081 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.37] using APR version [1.7.0]. 14-Jun-2023 12:24:43.081 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true]. 14-Jun-2023 12:24:43.082 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 14-Jun-2023 12:24:43.089 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.2 15 Mar 2022] 14-Jun-2023 12:24:43.740 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 14-Jun-2023 12:24:43.802 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [1145] milliseconds 14-Jun-2023 12:24:43.923 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 14-Jun-2023 12:24:43.924 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.76] 14-Jun-2023 12:24:43.958 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/ROOT.war] 14-Jun-2023 12:24:47.377 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 12:24:48.280 [main] INFO o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/config/guacamole". 12:24:48.487 [main] INFO o.a.g.GuacamoleServletContextListener - Read configuration parameters from "/config/guacamole/guacamole.properties". 12:24:48.489 [main] INFO o.a.g.rest.auth.HashTokenSessionMap - Sessions will expire after 10 minutes of inactivity. 12:24:49.624 [main] INFO o.a.g.extension.ExtensionModule - Multiple extensions are installed and will be loaded in order of decreasing priority: 12:24:49.624 [main] INFO o.a.g.extension.ExtensionModule - - [postgresql] "PostgreSQL Authentication" (/config/guacamole/extensions/guacamole-auth-jdbc-postgresql-1.5.1.jar) 12:24:49.625 [main] INFO o.a.g.extension.ExtensionModule - - [postgresql] "PostgreSQL Authentication" (/config/guacamole/extensions/guacamole-auth-jdbc-postgresql-1.5.2.jar) 12:24:49.625 [main] INFO o.a.g.extension.ExtensionModule - - [totp] "TOTP TFA Authentication Backend" (/config/guacamole/extensions/guacamole-auth-totp-1.5.1.jar) 12:24:49.625 [main] INFO o.a.g.extension.ExtensionModule - - [totp] "TOTP TFA Authentication Backend" (/config/guacamole/extensions/guacamole-auth-totp-1.5.2.jar) 12:24:49.625 [main] INFO o.a.g.extension.ExtensionModule - - [guacamole-branding] "Guacamole Branding" (/config/guacamole/extensions/guacamole-branding-1.5.2.jar) 12:24:49.625 [main] INFO o.a.g.extension.ExtensionModule - To change this order, set the "extension-priority" property or rename the extension files. The default priority of extensions is dictated by the sort order of their filenames. 12:24:51.311 [main] INFO o.a.g.extension.ExtensionModule - Extension "PostgreSQL Authentication" (postgresql) loaded. 12:24:52.571 [main] INFO o.a.g.extension.ExtensionModule - Extension "PostgreSQL Authentication" (postgresql) loaded. 12:24:52.943 [main] INFO o.a.g.extension.ExtensionModule - Extension "TOTP TFA Authentication Backend" (totp) loaded. 12:24:53.271 [main] INFO o.a.g.extension.ExtensionModule - Extension "TOTP TFA Authentication Backend" (totp) loaded. 12:24:53.271 [main] INFO o.a.g.extension.ExtensionModule - Extension "Guacamole Branding" (guacamole-branding) loaded. 12:24:53.460 [main] INFO o.a.g.t.w.WebSocketTunnelModule - Loading JSR-356 WebSocket support... 14-Jun-2023 12:24:53.638 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file 14-Jun-2023 12:24:53.660 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors 14-Jun-2023 12:24:53.716 INFO [AsyncFileHandlerWriter-1] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [com.google.common.base.Predicates$CompositionPredicate]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [com.google.common.base.Predicates$CompositionPredicate]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1432) at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1420) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1259) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220) at com.google.common.base.Predicates.compose(Predicates.java:227) at com.google.common.collect.Maps.keyPredicateOnEntries(Maps.java:2462) at com.google.common.collect.Maps.filterKeys(Maps.java:2496) at com.google.inject.internal.PackageNameCompressor.compressPackagesInMessage(PackageNameCompressor.java:114) at com.google.inject.internal.Messages.formatMessages(Messages.java:115) at com.google.inject.CreationException.getMessage(CreationException.java:50) at java.base/java.lang.Throwable.getLocalizedMessage(Unknown Source) at java.base/java.lang.Throwable.toString(Unknown Source) at java.base/java.lang.String.valueOf(Unknown Source) at java.base/java.io.PrintWriter.println(Unknown Source) at org.apache.juli.OneLineFormatter$IndentingPrintWriter.println(OneLineFormatter.java:283) at java.base/java.lang.Throwable$WrappedPrintWriter.println(Unknown Source) at java.base/java.lang.Throwable.printStackTrace(Unknown Source) at java.base/java.lang.Throwable.printStackTrace(Unknown Source) at org.apache.juli.OneLineFormatter.format(OneLineFormatter.java:159) at org.apache.juli.FileHandler.publish(FileHandler.java:233) at org.apache.juli.AsyncFileHandler.publishInternal(AsyncFileHandler.java:138) at org.apache.juli.AsyncFileHandler$1.run(AsyncFileHandler.java:131) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Exception in thread "AsyncFileHandlerWriter-1" java.lang.NoClassDefFoundError: com/google/common/base/Predicates$CompositionPredicate at com.google.common.base.Predicates.compose(Predicates.java:227) at com.google.common.collect.Maps.keyPredicateOnEntries(Maps.java:2462) at com.google.common.collect.Maps.filterKeys(Maps.java:2496) at com.google.inject.internal.PackageNameCompressor.compressPackagesInMessage(PackageNameCompressor.java:114) at com.google.inject.internal.Messages.formatMessages(Messages.java:115) at com.google.inject.CreationException.getMessage(CreationException.java:50) at java.base/java.lang.Throwable.getLocalizedMessage(Unknown Source) at java.base/java.lang.Throwable.toString(Unknown Source) at java.base/java.lang.String.valueOf(Unknown Source) at java.base/java.io.PrintWriter.println(Unknown Source) at org.apache.juli.OneLineFormatter$IndentingPrintWriter.println(OneLineFormatter.java:283) at java.base/java.lang.Throwable$WrappedPrintWriter.println(Unknown Source) at java.base/java.lang.Throwable.printStackTrace(Unknown Source) at java.base/java.lang.Throwable.printStackTrace(Unknown Source) at org.apache.juli.OneLineFormatter.format(OneLineFormatter.java:159) at org.apache.juli.FileHandler.publish(FileHandler.java:233) at org.apache.juli.AsyncFileHandler.publishInternal(AsyncFileHandler.java:138) at org.apache.juli.AsyncFileHandler$1.run(AsyncFileHandler.java:131) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: Illegal access: this web application instance has been stopped already. Could not load [com.google.common.base.Predicates$CompositionPredicate]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1422) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1259) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220) ... 21 more Caused by: java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [com.google.common.base.Predicates$CompositionPredicate]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1432) at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1420) ... 23 more 14-Jun-2023 12:24:53.738 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [9,780] ms 14-Jun-2023 12:24:53.743 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 14-Jun-2023 12:24:53.770 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [9967] milliseconds ```

What could be going on here ?

abesnier commented 1 year ago

I see what happens. You have some extensions which are present in different versions, and that creates conflicts:

12:24:49.624 [main] INFO  o.a.g.extension.ExtensionModule -  - [postgresql] "PostgreSQL Authentication" (/config/guacamole/extensions/guacamole-auth-jdbc-postgresql-1.5.1.jar)
12:24:49.625 [main] INFO  o.a.g.extension.ExtensionModule -  - [postgresql] "PostgreSQL Authentication" (/config/guacamole/extensions/guacamole-auth-jdbc-postgresql-1.5.2.jar)
12:24:49.625 [main] INFO  o.a.g.extension.ExtensionModule -  - [totp] "TOTP TFA Authentication Backend" (/config/guacamole/extensions/guacamole-auth-totp-1.5.1.jar)
12:24:49.625 [main] INFO  o.a.g.extension.ExtensionModule -  - [totp] "TOTP TFA Authentication Backend" (/config/guacamole/extensions/guacamole-auth-totp-1.5.2.jar)

Remove the 1.5.1 ones, and your container should work.

However, this issue was supposed to be fixed with an update I made last week (issue #16). Guess I still have work to do on this front.

Zixim commented 1 year ago

Remove the 1.5.1 ones, and your container should work.

confirmed.

abesnier commented 1 year ago

However, this issue was supposed to be fixed with an update I made last week (issue #16). Guess I still have work to do on this front.

And that should be fixed with this commit and images built from now on.