[ 
https://issues.apache.org/jira/browse/GUACAMOLE-1849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Jumper closed GUACAMOLE-1849.
----------------------------------
    Fix Version/s: 1.5.4
       Resolution: Fixed

> Parser reparses same instructions multiple times in some cases
> --------------------------------------------------------------
>
>                 Key: GUACAMOLE-1849
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1849
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-common-js
>    Affects Versions: 1.5.3, 1.5.2
>            Reporter: Darren Foley
>            Priority: Minor
>             Fix For: 1.5.4
>
>
> When using a tunnel that relies on XHR rather than websockets, parseResponse 
> in Tunnel.js calls parse.receive(current, true) when 
> xmlhttprequest.readyState is 3 or 4. When the readyState is 3, setInterval is 
> used to periodically call parseResponse to check the state, until reaching 
> readyState 4. This means that the parser.receive call can be made multiple 
> times for one request. This is supposed to be fine, since we're setting 
> isBuffer to true, which means we should send in the same message, with 
> anything new simply tacked onto the end. The startIndex and elementEnd 
> variables in receive should simply keep track of where we last left off, and 
> only parse any new instructions. However, this is not what's happening. 
> Instead, they are getting reset each time and the entire message is parsed 
> again, re-executing the same instructions. This was really clear in our 
> customized version of guacamole, as we've added our own instruction which 
> adds an icon to the top right corner when something is enabled. Due to this 
> issue, the icon was duplicated many times. I've made a hotfix in our copy of 
> the js which fixes this when isBuffer is true and retains the existing 
> behaviour when it's false. I can provide this in a pull request, though I'm 
> not sure if you'll want to use this change or rework the whole function.
>  
> Note: I believe this bug came in with 
> d6a01c28e56edb0b0d3bab4459b1f1a75414e999 so it would affect 1.5.2, too, 
> though I've only tested with 1.5.3.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to