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

Mike Jumper reopened GUACAMOLE-2063:
------------------------------------

Part of the fix already committed needs to acquire the proper lock before 
checking {{render_thread->state.value}}. As reported by Coverity, the following 
block of code:

{code:c|title=display-render-thread.c (starting at line 143)}
/* Use explicit frame boundaries whenever available */
if (render_thread->state.value & GUAC_DISPLAY_RENDER_THREAD_STATE_FRAME_READY) {

    rendered_frames = render_thread->frames;
    render_thread->frames = 0;

    guac_flag_clear(&render_thread->state,
              GUAC_DISPLAY_RENDER_THREAD_STATE_FRAME_READY
            | GUAC_DISPLAY_RENDER_THREAD_STATE_FRAME_MODIFIED);
    guac_flag_unlock(&render_thread->state);
    break;

}
{code}

presumes that the lock for the {{render_thread->state}} flag has been acquired, 
yet this isn't the case any longer. The block was moved outside the portion of 
code that holds the lock.

> RDP message_lock can block processing of "sync"
> -----------------------------------------------
>
>                 Key: GUACAMOLE-2063
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2063
>             Project: Guacamole
>          Issue Type: Bug
>          Components: RDP
>    Affects Versions: 1.6.0
>            Reporter: Mike Jumper
>            Assignee: Mike Jumper
>            Priority: Blocker
>             Fix For: 1.6.0
>
>
> Similar to GUACAMOLE-2061, the {{message_lock}} used within the RDP support 
> to control concurrent attempts to send RDP messages appears to contribute to 
> delays in processing of "sync", indirectly tying progress of output 
> processing to processing of input.



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

Reply via email to