You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "Jake Coffman (Jira)" <ji...@apache.org> on 2020/05/24 20:30:00 UTC

[jira] [Created] (GUACAMOLE-1077) guacd sending invalid instructions causing disconnect

Jake Coffman created GUACAMOLE-1077:
---------------------------------------

             Summary: guacd sending invalid instructions causing disconnect 
                 Key: GUACAMOLE-1077
                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1077
             Project: Guacamole
          Issue Type: Bug
          Components: guacamole-server
    Affects Versions: 1.1.0
            Reporter: Jake Coffman


I noticed occasionally that using the guacamole session sharing feature that I and others would get immediately disconnected after connecting to an existing session. I wrote a script that reproduces the issue within a minute or two (although sometimes it happens right away).

See this repo for the code: [https://github.com/jakecoffman/guacd-bug]

I believe the issue is guacd is sending an invalid instruction because the error seen is {{Connection to guacd terminated abnormally: Element terminator of instruction was not ';' nor ','}}

Steps to reproduce the issue:
 * Start guacd {{docker run --name guacd -it --rm -p 4822:4822 guacamole/guacd}}
 * Start postgres {{docker run --name some-postgres -e POSTGRES_PASSWORD=pw -e POSTGRES_USER=postgres -e POSTGRES_DB=guacamole_db -p 5432:5432 -d postgres}}
 * Generate init.db {{docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > initdb.sql}}
 * Run initdb.sql on guacamole_db database
 * Start guacamole client {{docker run --name my-guac --link guacd:guacd --link some-postgres:postgres -e POSTGRES_DATABASE=guacamole_db -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=pw -p 8080:8080 guacamole/guacamole}}
 * Connect [http://localhost:8080/guacamole/#/]
 * Login with guacadmin/guacadmin
 * Configure an RDP session as usual, but be sure to set Maximum connections to 100 and Maximum per user to 100 too.
 * Save and go Home
 * Click on the connection to start the first connection
 * In a new window/browser login to guacamole and go to settings
 * Under active sessions you should see your other active session. Open developer tools and then click on the Connection Name link to connect to it.
 * Copy the websocket connection from the network tab and paste it into the Go script (replace url).
 * Also grab the Cookie header and paste it in the script (replace cookie).
 * Start the script {{go run main.go}}
 * You should see "Diaing 0" etc for a while, sometimes it happens right away sometimes it takes a long time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)