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.
