RE: Deploying locally built WAR
Solved: Apologies in advance for the long message - I figured it out but have questions on the docs and what it's actually doing >From digging on this I saw tomcat had guacd on localhost:4802 which is NOT >where it is - it's at guac-guacd:4822 >From the log file: 01:41:04.511 [http-nio-8080-exec-2] DEBUG o.a.g.net.InetGuacamoleSocket - Connecting to guacd at localhost:4822. So I dug into the code that checks that and saw that the environment has a default setting of localhost for the guacd_hostname... and since my environment variable was set that seemed odd. So then I see it's reading /root/.guacamole/guacamole.properties and THAT file is being concatenated to MY guacamole.properties file that does not have a trailing newline. When I added a line break to my guacamole.properties file it fixed it and loaded up. So having gone through this, I have a few questions as to how this was supposed to work ** this may only apply to a docker installation ** 1. I created the properties file originally because it seemed like an easy way to set the config instead of on the docker run line. The documentation says "The guacamole.properties file is optional and is used to configure Guacamole in situations where the defaults are insufficient, or to provide additional configuration information for extensions." What actually is happening is the startup script is taking environment vars and creating the properties file (I think). So the properties file is necessary, but me creating my own isn't, since tomcat is actually reading it. Right? And creating one can cause problems, even if it's correct see #2... 2. The properties file in /root/.guacamole (that is created by the startup script) is concatenated to a guacamole.properties file located in my local volume. The local one is in a docker volume that I also set to $guacamole_home. When the properties file is concatenated, if the one I created in my local volume doesn't have a trailing newline, it puts 2 keys on one line-the script just starts writing to it, even though it exists already. In my case, that happened to be the guacd_hostname that got hosed. I did verify this happens in windows and ubuntu. So if you create a properties file, it has to have a trailing newline. I worry about properties files that are concatenated like this because the property file could be invalid due to duplicate keys (or the newline issue). The newline issue could be avoided by writing a newline to the properties file first in the script though. 3. There may be an issue when trying to create a properties file programmatically when one already exists in the user defined guacamole_home. Maybe this is a scenario that didn't exist before deploying via docker. 4. Tomcat seems to only care about /root/.guacamole as the guacamole_home which is a bit confusing since it's not using $guacamole_home. This was actually the source of my issues. I didn't realize that the environment variables were just used to create a properties file for tomcat. I saw my environment variables, they were correct, and yet tomcat had incorrect information due to the issues above. I may have misinterpreted some of this -- sorry if that's the case. I'd be happy to help get to a resolution on these if it's agreed my scenario wasn't unique to me and reflects some degree of misinformation in the documentation and/or approach to the properties file overall. Thanks for the replies even though it seemed like I was churning =) -Ryan From: Ryan Underwood [mailto:r...@greymarketlabs.com] Sent: Friday, October 13, 2017 4:20 PM To: user@guacamole.incubator.apache.org Subject: RE: Deploying locally built WAR I can telnet from guacamole to guacd and guacd gives me a protocol error when I do. I literally copied the scripts a buddy is using on Windows and his works fine. I added logging to the classes throwing the error to provide more details on what was requested. Sent from my Android phone using TouchDown (www.symantec.com<http://www.symantec.com>) -Original Message- From: Mike Jumper [mike.jum...@guac-dev.org] Received: Friday, 13 Oct 2017, 4:07PM To: user@guacamole.incubator.apache.org<mailto:user@guacamole.incubator.apache.org> [user@guacamole.incubator.apache.org] Subject: Re: Deploying locally built WAR On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood mailto:r...@greymarketlabs.com>> wrote: Thanks Nick - not sure how I missed it in the root. Now I have the image built from my local repo clone. I've modified some of the source to add logging because I still can't connect to an RDP instance and the only error I get is: 9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused 19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelSe
RE: Deploying locally built WAR
I can telnet from guacamole to guacd and guacd gives me a protocol error when I do. I literally copied the scripts a buddy is using on Windows and his works fine. I added logging to the classes throwing the error to provide more details on what was requested. Sent from my Android phone using TouchDown (www.symantec.com) -Original Message- From: Mike Jumper [mike.jum...@guac-dev.org] Received: Friday, 13 Oct 2017, 4:07PM To: user@guacamole.incubator.apache.org [user@guacamole.incubator.apache.org] Subject: Re: Deploying locally built WAR On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood mailto:r...@greymarketlabs.com>> wrote: Thanks Nick – not sure how I missed it in the root. Now I have the image built from my local repo clone. I’ve modified some of the source to add logging because I still can’t connect to an RDP instance and the only error I get is: 9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused 19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel. org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused This looks like guacd is unreachable. Is your Guacamole image configured to connect to a running copy of guacd (in another Docker container or otherwise)? This is the same error I get with the docker hub image too. However, after adding some logging in the java classes and updating the logback.xml to go to trace, none of my messages show up anywhere. Any thoughts? What logging did you add? - Mike
Re: Deploying locally built WAR
On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood wrote: > Thanks Nick – not sure how I missed it in the root. > > Now I have the image built from my local repo clone. I’ve modified some of > the source to add logging because I still can’t connect to an RDP instance > and the only error I get is: > > 9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet > - HTTP tunnel request failed: java.net.ConnectException: Connection refused > > 19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet > - Internal error in HTTP tunnel. > > org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: > Connection refused > > This looks like guacd is unreachable. Is your Guacamole image configured to connect to a running copy of guacd (in another Docker container or otherwise)? This is the same error I get with the docker hub image too. However, after > adding some logging in the java classes and updating the logback.xml to go > to trace, none of my messages show up anywhere. Any thoughts? > > What logging did you add? - Mike
RE: Deploying locally built WAR
Thanks Nick – not sure how I missed it in the root. Now I have the image built from my local repo clone. I’ve modified some of the source to add logging because I still can’t connect to an RDP instance and the only error I get is: 9:50:16.382 [http-nio-8080-exec-9] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: java.net.ConnectException: Connection refused 19:50:16.384 [http-nio-8080-exec-9] DEBUG o.a.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel. org.apache.guacamole.GuacamoleServerException: java.net.ConnectException: Connection refused This is the same error I get with the docker hub image too. However, after adding some logging in the java classes and updating the logback.xml to go to trace, none of my messages show up anywhere. Any thoughts? Regards -Ryan From: Nick Couchman [mailto:vn...@apache.org] Sent: Thursday, October 12, 2017 2:53 PM To: user@guacamole.incubator.apache.org Subject: Re: Deploying locally built WAR On Thu, Oct 12, 2017 at 2:49 PM, Ryan Underwood mailto:r...@greymarketlabs.com>> wrote: I think that is part of the problem. Could someone post the dockerfile that you guys used for the docker image on docker hub? For some reason that one posted without the dockerfile. Thank you You can find the Dockerfile in the github repository: https://github.com/apache/incubator-guacamole-client/blob/master/Dockerfile -Nick
Re: Deploying locally built WAR
On Thu, Oct 12, 2017 at 2:49 PM, Ryan Underwood wrote: > I think that is part of the problem. Could someone post the dockerfile > that you guys used for the docker image on docker hub? For some reason > that one posted without the dockerfile. > > Thank you > > > You can find the Dockerfile in the github repository: https://github.com/apache/incubator-guacamole-client/blob/master/Dockerfile -Nick
RE: Deploying locally built WAR
I think that is part of the problem. Could someone post the dockerfile that you guys used for the docker image on docker hub? For some reason that one posted without the dockerfile. Thank you From: Nick Couchman [mailto:vn...@apache.org] Sent: Thursday, October 12, 2017 1:50 PM To: user@guacamole.incubator.apache.org Subject: Re: Deploying locally built WAR On Thu, Oct 12, 2017 at 1:47 PM, Ryan Underwood mailto:r...@greymarketlabs.com>> wrote: I built the war with no issues, dropped it into the tomcat folder (in docker) and bounced the container. Now the MySQL authentication/extension appears to have issues. Any ideas? For reference, I’m still troubleshooting the fact that I cannot connect to any remote RDP servers (or any servers) on my installation, though it’s a mirror of a friend’s built with the same scripts. I rebuilt the war to add logging information around the areas that are failing. Thank you 17:41:36.046 [localhost-startStop-1] ERROR o.a.g.extension.ProviderFactory - authentication provider extension failed to start: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty If you built a new WAR, you also probably need to replace the MySQL JAR file. There have been some recent changes that would impact this class mentioned, specifically - the ConnectionRecordSet has been changed to ActivityRecordSet, so the WAR and JAR need to match. You'll need to drop the new JAR file into the Guacamole extensions folder. -Nick
Re: Deploying locally built WAR
On Thu, Oct 12, 2017 at 1:47 PM, Ryan Underwood wrote: > I built the war with no issues, dropped it into the tomcat folder (in > docker) and bounced the container. Now the MySQL authentication/extension > appears to have issues. Any ideas? > > For reference, I’m still troubleshooting the fact that I cannot connect to > any remote RDP servers (or any servers) on my installation, though it’s a > mirror of a friend’s built with the same scripts. I rebuilt the war to add > logging information around the areas that are failing. > > Thank you > > > > 17:41:36.046 [localhost-startStop-1] ERROR o.a.g.extension.ProviderFactory > - authentication provider extension failed to start: > com.google.inject.internal.util.$ComputationException: > java.lang.NoClassDefFoundError: > org/apache/guacamole/net/auth/ConnectionRecordSet$SortableProperty > > > If you built a new WAR, you also probably need to replace the MySQL JAR file. There have been some recent changes that would impact this class mentioned, specifically - the ConnectionRecordSet has been changed to ActivityRecordSet, so the WAR and JAR need to match. You'll need to drop the new JAR file into the Guacamole extensions folder. -Nick