Try clean build

git clean -f
 autoreconf -i
 ./configure
 make





From: Dogbert [mailto:[email protected]]
Sent: 06 June 2017 17:31
To: [email protected]
Subject: Re: Guacamole 0.9.12 WAN Performance (Ubuntu 14, XDRP)

Hi one more time,
After upgrading to the latest 0.9.12 I get the following message:
Exception in thread "Thread-19" java.lang.IllegalStateException: Message will 
not be sent because the WebSocket session has been closed
    at 
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:424)
    at 
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:309)
    at 
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:250)
    at 
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:191)
    at 
org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)
    at 
org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint$2.run(GuacamoleWebSocketTunnelEndpoint.java:169)
using the code I posted in a previous message, which I upgraded to use:

compile group: 'org.apache.guacamole', name: 'guacamole-common', version: 
'0.9.10-incubating'
Which worked before the upgrade. I also tried building guacamole-common from 
source, which creates a 0.9.10-incubating jar not 0.9.1.2.
Any ideas, what could be going wrong? I do have permissions to at least restart 
guacd and that has no effect. Could IT have bouched the install? Could 
installing 0.9.12 over 0.9.9, caused the issue?
Thanks?

On Tue, Jun 6, 2017 at 11:07 AM, Dogbert 
<[email protected]<mailto:[email protected]>> wrote:
Hi again,
Just got back the status from the upgrade, and it still can spike the cpu and 
the IT guy sent be back the status of the install, below. Could any of the libs 
with the status of 'no' have a negative effect on performance. With this 
install I am running against a vnc server.
Thanks,
Tucker

Output form install:

------------------------------------------------
guacamole-server version 0.9.12-incubating
------------------------------------------------

Library status:

freerdp ............. yes
pango ............... yes
libavcodec .......... no
libavutil ........... no
libssh2 ............. no
libssl .............. yes
libswscale .......... no
libtelnet ........... no
libVNCServer ........ yes
libvorbis ........... no
libpulse ............ yes
libwebp ............. no

Protocol support:

RDP ....... yes
SSH ....... no
Telnet .... no
VNC ....... yes

Services / tools:

guacd ...... yes
guacenc .... no

Init scripts: no

Second run of ./configure --with-init-dir=/etc/init.d

------------------------------------------------
guacamole-server version 0.9.12-incubating
------------------------------------------------

Library status:

freerdp ............. yes
pango ............... yes
libavcodec .......... no
libavutil ........... no
libssh2 ............. no
libssl .............. yes
libswscale .......... no
libtelnet ........... no
libVNCServer ........ yes
libvorbis ........... no
libpulse ............ yes
libwebp ............. no

Protocol support:

RDP ....... yes
SSH ....... no
Telnet .... no
VNC ....... yes

Services / tools:

guacd ...... yes
guacenc .... no

Init scripts: /etc/init.d

Starting guacd: guacd[114289]: INFO: Guacamole proxy daemon (guacd) version
0.9.12-incubating started
SUCCESS

Please let me know if this meets your specifications.


On Tue, Jun 6, 2017 at 10:48 AM, Dogbert 
<[email protected]<mailto:[email protected]>> wrote:
Hi Al Gore/Cody,
So I saw this email and I'm looking into Guacamole again, a while ago I did a 
poc(project taken over from offshore) with Guac looking to move to it from 
novnc. I have seen CPU spikes, even on my dev box(quad core 8 thread 32GB of 
RAM), when running a session. My sessions are running CAD like apps with a 3D 
model and moving the model can cause a cpu spike. Right now I'm using version 
0.9.9, but I'm getting IT to upgrade me to 0.9.12(Don't have sudo on my box at 
this job). Also might be worth noting that my dev box is running Centos 6.7.  
With my application I think I'm running over websockets, but my question is how 
can I be sure? My endpoint is running on a Grails app with endpoint code 
bellow(I have fixed the todo in another branch). Also When I connect I use a 
ws:// url. If I run in FireFox I see not network traffic, but if I run it 
chrome I see a bunch of get request.
Thanks,
Tucker


package com.commpany.vnc.guacamole

import grails.util.Environment
import org.glyptodon.guacamole.GuacamoleException
import 
org.glyptodon.guacamole.net<http://org.glyptodon.guacamole.net>.GuacamoleSocket
import 
org.glyptodon.guacamole.net<http://org.glyptodon.guacamole.net>.GuacamoleTunnel
import 
org.glyptodon.guacamole.net<http://org.glyptodon.guacamole.net>.InetGuacamoleSocket
import 
org.glyptodon.guacamole.net<http://org.glyptodon.guacamole.net>.SimpleGuacamoleTunnel
import org.glyptodon.guacamole.protocol.ConfiguredGuacamoleSocket
import org.glyptodon.guacamole.protocol.GuacamoleClientInformation
import org.glyptodon.guacamole.protocol.GuacamoleConfiguration
import org.glyptodon.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint

import javax.servlet.ServletContext
import javax.servlet.ServletContextEvent
import javax.servlet.ServletContextListener
import javax.websocket.EndpointConfig
import javax.websocket.Session
import javax.websocket.server.ServerContainer
import javax.websocket.server.ServerEndpoint

@ServerEndpoint(value = "/guacamole/websocket", subprotocols = ["guacamole"])
class GuacamoleEndpoint extends GuacamoleWebSocketTunnelEndpoint implements 
ServletContextListener {

    @Override
    void contextInitialized(ServletContextEvent sce) {
        ServletContext servletContext = sce.servletContext
        ServerContainer serverContainer = 
servletContext.getAttribute("javax.websocket.server.ServerContainer")

        try {
            // This is necessary for Grails to add the endpoint in development.
            // In production, the endpoint will be added by the @ServerEndpoint
            // annotation.
            if (Environment.current == Environment.DEVELOPMENT) {
                serverContainer.addEndpoint(GuacamoleEndpoint)
            }
            serverContainer.defaultMaxSessionIdleTimeout = 0
        } catch (IOException e) {
            log.error(e.message, e)
        }
    }

    @Override
    void contextDestroyed(ServletContextEvent sce) {

    }

    @Override
    protected GuacamoleTunnel createTunnel(Session session, EndpointConfig 
config) throws GuacamoleException {
        String colorDepth = session.requestParameterMap.colorDepth[0]
        Boolean cursor = 
Boolean.parseBoolean(session.requestParameterMap.cursor[0])
        Boolean readOnly = 
Boolean.parseBoolean(session.requestParameterMap.readOnly[0])

        GuacamoleClientInformation info = new GuacamoleClientInformation();
        info.getImageMimetypes().addAll(['image/png',' 
image/webp','image/jpeg'])


        GuacamoleConfiguration guacamoleConfig = new GuacamoleConfiguration()
        guacamoleConfig.setProtocol("vnc")
        //TODO Replace with a more secure method of getting the params
        guacamoleConfig.setParameter("hostname", 
session.requestParameterMap.host[0])
        guacamoleConfig.setParameter("port", 
session.requestParameterMap.port[0])
        guacamoleConfig.setParameter("password", 
session.requestParameterMap.password[0])

        if (colorDepth) {
            guacamoleConfig.setParameter("color-depth", colorDepth)// can set 
it to 16 but not 8.
        }

        if (cursor) {
            guacamoleConfig.setParameter("cursor", 'remote')
        }


        if (readOnly) {
            guacamoleConfig.setParameter("read-only", "true")
        }

        GuacamoleSocket socket = new ConfiguredGuacamoleSocket(new 
InetGuacamoleSocket("localhost", 4822), guacamoleConfig, info)

        // Return a new tunnel which uses the connected socket
        return new SimpleGuacamoleTunnel(socket)
    }
}


On Fri, Jun 2, 2017 at 9:40 AM, Al Gore 
<[email protected]<mailto:[email protected]>> wrote:
The most common issues are CPU on the guacd server and using HTTP instead of
websockets. Here is how you can figure this out:

1. Run "top" on your guacd server, open a console to one of your Ubuntu
hosts in a browser, then open a terminal window or something and drag it
quickly in a circle while watching top. Note the CPU usage on your guacd
server. If it is really high, either you are running on HTTP comms, your VM
integration components are out of date, or the CPU just isn't powerful
enough. Try setting "maximum performance" power settings and
installing/upgrading your VM integration components.

2. Open a browser debugger (F12) and connect to an Ubuntu instance. Note the
protocol being used for the connection. If you see a large number of HTTP
requests that occur every second or so continuously, then you are stuck on
HTTP and websockets are not working. This will cause massive overhead.

If you find out that one of these is the problem, I can help point you in
the right direction to fix it. If they are not the problem, I know a few
other things to look at.



--
View this message in context: 
http://apache-guacamole-incubating-users.2363388.n4.nabble.com/Guacamole-0-9-12-WAN-Performance-Ubuntu-14-XDRP-tp1040p1043.html
Sent from the Apache Guacamole (incubating) - Users mailing list archive at 
Nabble.com.



Reply via email to