guacamole-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Underwood <>
Subject RE: Deploying locally built WAR
Date Sat, 14 Oct 2017 03:33:10 GMT
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 - 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/ and THAT file is being
concatenated to MY file that does not have a trailing newline.  When
I added a line break to my 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
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 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 =)

From: Ryan Underwood []
Sent: Friday, October 13, 2017 4:20 PM
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 (<>)

-----Original Message-----
From: Mike Jumper []
Received: Friday, 13 Oct 2017, 4:07PM
Subject: Re: Deploying locally built WAR
On Fri, Oct 13, 2017 at 1:00 PM, Ryan Underwood <<>>
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: 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: 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

View raw message