You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@guacamole.apache.org by jm...@roth.lu on 2016/07/20 20:50:18 UTC

Guacd segfaults (when not run in gdb). Timing issue?

Hi all,

I am getting the following error when trying to connect to a Windows 7 
machine via RDP from a Debian Wheezy system with Guacamole 0.9.9 
installed. It's been compiled with RDP and SSL support.

When running guacd in the debugger (gdb), it does not crash (!). In all 
the other cases:

22:07:00.594 [http-bio-8080-exec-8] INFO 
o.g.g.n.b.r.a.AuthenticationService - User "USER" successfully 
authenticated from 172.16.x.x.
22:07:00.595 [http-bio-8080-exec-8] DEBUG 
o.g.g.n.b.r.a.AuthenticationService - Login was successful for user "USER".
22:07:01.171 [http-bio-8080-exec-2] DEBUG o.g.g.net.InetGuacamoleSocket 
- Connecting to guacd at localhost:4822.
22:07:01.302 [http-bio-8080-exec-2] ERROR 
o.g.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: End of 
stream while waiting for "ready".
22:07:01.302 [http-bio-8080-exec-2] DEBUG 
o.g.g.s.GuacamoleHTTPTunnelServlet - Internal error in HTTP tunnel.
org.glyptodon.guacamole.GuacamoleServerException: End of stream while 
waiting for "ready".
         at 
org.glyptodon.guacamole.protocol.ConfiguredGuacamoleSocket.expect(ConfiguredGuacamoleSocket.java:81) 
~[guacamole-common-0.9.9.jar:na]
         at 
org.glyptodon.guacamole.protocol.ConfiguredGuacamoleSocket.<init>(ConfiguredGuacamoleSocket.java:197) 
~[guacamole-common-0.9.9.jar:na]
         at 
org.glyptodon.guacamole.net.auth.simple.SimpleConnection.connect(SimpleConnection.java:132) 
~[guacamole-ext-0.9.9.jar:na]
         at 
org.glyptodon.guacamole.net.basic.TunnelRequestService.createConnectedTunnel(TunnelRequestService.java:173) 
~[TunnelRequestService.class:na]
         at 
org.glyptodon.guacamole.net.basic.TunnelRequestService.createTunnel(TunnelRequestService.java:338) 
~[TunnelRequestService.class:na]
         at 
org.glyptodon.guacamole.net.basic.BasicGuacamoleTunnelServlet.doConnect(BasicGuacamoleTunnelServlet.java:58) 
~[BasicGuacamoleTunnelServlet.class:na]
         at 
org.glyptodon.guacamole.servlet.GuacamoleHTTPTunnelServlet.handleTunnelRequest(GuacamoleHTTPTunnelServlet.java:218) 
[guacamole-common-0.9.9.jar:na]
         at 
org.glyptodon.guacamole.servlet.GuacamoleHTTPTunnelServlet.doPost(GuacamoleHTTPTunnelServlet.java:147) 
[guacamole-common-0.9.9.jar:na]
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
[tomcat-servlet-api-3.0.jar:na]
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
[tomcat-servlet-api-3.0.jar:na]
         at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) 
[guice-servlet-3.0.jar:na]
         at 
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) 
[guice-servlet-3.0.jar:na]
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
[tomcat-catalina-7.0.28.jar:7.0.28]
         at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1003) 
[tomcat-coyote-7.0.28.jar:7.0.28]
         at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) 
[tomcat-coyote-7.0.28.jar:7.0.28]
         at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
[tomcat-coyote-7.0.28.jar:7.0.28]
         at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_101]
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_101]
         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_101]

Using tcpdump, I can see the connection on localhost to guacd, and also 
the connection from localhost to the Win7 machine in question. However, 
for some reason the connection isn't carried out the end.

Couldn't find any errors in Event Viewer on the Win7 host in question.

Guacd is segfaulting:
Jul 20 22:27:48 guac kernel: [10017.627627] guacd[3787]: segfault at 
7fc59b0772e0 ip 00007fc59b0772e0 sp 00007fc5982e9c68 error 15 in 
libguac-client-rdp.so.0.0.0[7fc59b077000+6000]

Is this some kind of timing issue since running in the debugger (slower) 
is ok?

Thanks,
Marki

Re: Guacd segfaults (when not run in gdb). Timing issue?

Posted by jm...@roth.lu.
This is crazy.

Running it directly on the command line is ok (no segfault):
root@guac:~# /opt/guac-0.9.9/sbin/guacd -p /var/run/guacd.pid
(Obviously, running via gdb is that same case.)

Running it via the init script and no segfault either:
root@guac:~# /etc/init.d/guacd start

Running it using "service" and it DOES NOT work but segfaults:
root@guac:~# service guacd start

I guess "service" messes up the environment... ?

Re: Guacd segfaults (when not run in gdb). Timing issue?

Posted by jm...@roth.lu.
Correction: the segfault is happening in libc and not in 
libguac-client-rdp.so.0.0.0!

Jul 20 22:55:26 guac kernel: [ 1247.552339] guacd[27460]: segfault at 0 
ip 00007f18b1b8cf2f sp 00007ffff7a30bc8 error 4 in 
libc-2.13.so[7f18b1a70000+184000]


On 7/20/2016 10:50 PM, jm+guacamole@roth.lu wrote:
>
> Guacd is segfaulting: *** WRONG! see above ***
> Jul 20 22:27:48 guac kernel: [10017.627627] guacd[3787]: segfault at 
> 7fc59b0772e0 ip 00007fc59b0772e0 sp 00007fc5982e9c68 error 15 in 
> libguac-client-rdp.so.0.0.0[7fc59b077000+6000]
>