Michael Jumper created GUACAMOLE-200:
----------------------------------------
Summary: read() in RDPDR printer can block user input
Key: GUACAMOLE-200
URL: https://issues.apache.org/jira/browse/GUACAMOLE-200
Project: Guacamole
Issue Type: Bug
Components: RDP
Affects Versions: 0.9.11-incubating, 0.9.10-incubating
Reporter: Michael Jumper
Assignee: Michael Jumper
Priority: Critical
Fix For: 0.9.12-incubating
Recent changes moved the RDP printer within Guacamole from asynchronous
transfer (independent of received "ack" messages) to synchronous transfer. This
is fin in itself, but the {{read()}} call pulling more data from GhostScript in
reponse to an "ack" actually occurs within the handler for that "ack". If
GhostScript is busy processing things and that {{read()}} blocks, handling of
user input as a whole gets blocked.
The actual reads need to be moved into a printer-specific thread, with receipt
of "ack" signalling that more data should be read, allowing the ack handler to
finish regardless of GhostScript's state.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)