You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "GokulRamakrishnan (Jira)" <ji...@apache.org> on 2026/04/01 17:10:00 UTC

[jira] [Commented] (GUACAMOLE-827) BlobWrite FileReader Busy State When Writing Data To VM

    [ https://issues.apache.org/jira/browse/GUACAMOLE-827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18070389#comment-18070389 ] 

GokulRamakrishnan commented on GUACAMOLE-827:
---------------------------------------------

[~vnick] Can verify that it's still prevalent in the recent versions of Guacamole and my MR - [https://github.com/apache/guacamole-client/pull/1194] addresses this issue. On a super high level, it basically checks if another chunk is currently being processed, if so, it doesn't accept the next chunk until the current chunk finishes processing and the appropriate ack is received. Also verified this fix on multiple production grade environments.

> BlobWrite FileReader Busy State When Writing Data To VM
> -------------------------------------------------------
>
>                 Key: GUACAMOLE-827
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-827
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-common-js
>    Affects Versions: 1.0.0
>         Environment: Google Chrome
>            Reporter: James Caple
>            Priority: Trivial
>              Labels: newbie, patch
>
> When creating a custom HTML/JS Guacamole client to write files to a VM using the BlobWriter JS class, an error similar to the following is generated (error is from running the code in Google Chrome):
>  
> zone.js:1495 Uncaught (in promise) DOMException: Failed to execute 'readAsArrayBuffer' on 'FileReader': The object is already busy reading Blobs.
> at _global.<computed>.<computed> [as readAsArrayBuffer] (https://redacted/polyfills.6e39da16eddfecb84434.js:3830:60)
> at readNextChunk (https://redacted/main.51a4f7c78afe09ae8d5e.js:168269:20)
> at push../src/app/components/core/desktop/js/BlobWriter.js.redacted.ArrayBufferWriter.sendMoreChunks [as onack] (https://redacted/main.51a4f7c78afe09ae8d5e.js:168295:17)
> at push../node_modules/guacamole-common-js/dist/guacamole-common.js.Guacamole.OutputStream.stream.onack (https://redacted/main.51a4f7c78afe09ae8d5e.js:168396:25)
> at ack (https://redacted/main.51a4f7c78afe09ae8d5e.js:114024:28)
> at push../node_modules/guacamole-common-js/dist/guacamole-common.js.Guacamole.HTTPTunnel.tunnel.oninstruction (https://redacted/main.51a4f7c78afe09ae8d5e.js:114685:13)
> at XMLHttpRequest.parseResponse [as __zone_symbol__ON_PROPERTYreadystatechange] (https://redacted/main.51a4f7c78afe09ae8d5e.js:123910:40)
> at XMLHttpRequest.wrapFn (https://redacted/polyfills.6e39da16eddfecb84434.js:3667:39)
> at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (https://redacted/polyfills.6e39da16eddfecb84434.js:2758:31)
> at Object.onInvokeTask ([https://redacted/main.51a4f7c78afe09ae8d5e.js:33312:33)]
>  
> While a file would ultimately get written to the remote VM, it is never a complete file given the error above, which seems to be indicative of the asynchronous nature of the file transfer activity and the contentious use of the BlobWriter FileReader object.



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