[
https://issues.apache.org/jira/browse/GUACAMOLE-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
jouplou updated GUACAMOLE-2110:
-------------------------------
Attachment: guac.png
> Session recordings from 1.5.5 does not play in 1.6.0
> ----------------------------------------------------
>
> Key: GUACAMOLE-2110
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-2110
> Project: Guacamole
> Issue Type: Bug
> Affects Versions: 1.6.0
> Environment: guacamole/guacd 1.6.0, ARM, Docker.
> Reporter: Adam
> Priority: Major
> Attachments: guac.png
>
>
> After updating guacamole and guacd to 1.6.0, old recordings of RDP sessions
> from 1.5.5 play only for 5 seconds and then freeze.
> When this happens, following is logged in browser console:
> {code:java}
> Uncaught (in promise) DOMException: CanvasRenderingContext2D.drawImage:
> Passed-in canvas is empty
> toCanvas https://guacamole.url/guacamole-common-js/all.min.js:96
> exportState https://guacamole.url/guacamole-common-js/all.min.js:19
> flush https://guacamole.url/guacamole-common-js/all.min.js:48
> r https://guacamole.url/guacamole-common-js/all.min.js:46
> unblock https://guacamole.url/guacamole-common-js/all.min.js:44
> drawStream https://guacamole.url/guacamole-common-js/all.min.js:51
> promise callback*Guacamole.Display/this.drawStream
> https://guacamole.url/guacamole-common-js/all.min.js:51
> img https://guacamole.url/guacamole-common-js/all.min.js:31
> oninstruction https://guacamole.url/guacamole-common-js/all.min.js:38
> receiveInstruction
> https://guacamole.url/guacamole-common-js/all.min.js:143
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> receive https://guacamole.url/guacamole-common-js/all.min.js:128
> b https://guacamole.url/guacamole-common-js/all.min.js:135
> C https://guacamole.url/guacamole-common-js/all.min.js:136
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> y https://guacamole.url/guacamole-common-js/all.min.js:139
> setTimeout handler*m
> https://guacamole.url/guacamole-common-js/all.min.js:139
> I https://guacamole.url/guacamole-common-js/all.min.js:139
> J https://guacamole.url/guacamole-common-js/all.min.js:140
> y https://guacamole.url/guacamole-common-js/all.min.js:140
> setTimeout handler*J
> https://guacamole.url/guacamole-common-js/all.min.js:140
> J https://guacamole.url/guacamole-common-js/all.min.js:140
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> b https://guacamole.url/guacamole-common-js/all.min.js:135
> C https://guacamole.url/guacamole-common-js/all.min.js:136
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> y https://guacamole.url/guacamole-common-js/all.min.js:139
> setTimeout handler*m
> https://guacamole.url/guacamole-common-js/all.min.js:139
> I https://guacamole.url/guacamole-common-js/all.min.js:139
> J https://guacamole.url/guacamole-common-js/all.min.js:140
> J https://guacamole.url/guacamole-common-js/all.min.js:140
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> b https://guacamole.url/guacamole-common-js/all.min.js:135
> C https://guacamole.url/guacamole-common-js/all.min.js:136
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> y https://guacamole.url/guacamole-common-js/all.min.js:139
> setTimeout handler*m
> https://guacamole.url/guacamole-common-js/all.min.js:139
> I https://guacamole.url/guacamole-common-js/all.min.js:139
> J https://guacamole.url/guacamole-common-js/all.min.js:140
> J https://guacamole.url/guacamole-common-js/all.min.js:140
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> b https://guacamole.url/guacamole-common-js/all.min.js:135
> C https://guacamole.url/guacamole-common-js/all.min.js:136
> M https://guacamole.url/guacamole-common-js/all.min.js:138
> P https://guacamole.url/guacamole-common-js/all.min.js:139
> all.min.js:96 {code}
> In this state, when trying to change recording position, following error is
> logged:
> {code:java}
> Uncaught (in promise) DOMException: CanvasRenderingContext2D.drawImage:
> Passed-in canvas is empty
> toCanvas all.min.js:96
> exportState all.min.js:19
> flush all.min.js:48
> r all.min.js:46
> unblock all.min.js:44
> drawStream all.min.js:51
> promise callback*Guacamole.Display/this.drawStream all.min.js:51
> img all.min.js:31
> oninstruction all.min.js:38
> receiveInstruction all.min.js:143
> M all.min.js:138
> receive all.min.js:128
> b all.min.js:135
> C all.min.js:136
> M all.min.js:138
> P all.min.js:139
> m all.min.js:139
> I all.min.js:139
> J all.min.js:140
> play all.min.js:141
> seekToPlaybackPosition player.js:386
> commitSeekRequest player.js:347
> Angular 5
> jQuery 8
> Angular 24
> jQuery 2
> all.min.js:96
> toCanvas all.min.js:96
> exportState all.min.js:19
> flush all.min.js:48
> r all.min.js:46
> unblock all.min.js:44
> drawStream all.min.js:51
> (asynchroniczny: promise callback)
> drawStream all.min.js:51
> img all.min.js:31
> oninstruction all.min.js:38
> receiveInstruction all.min.js:143
> M all.min.js:138
> receive all.min.js:128
> b all.min.js:135
> (asynchroniczny: EventHandlerNonNull)
> C all.min.js:136
> M all.min.js:138
> P all.min.js:139
> m all.min.js:139
> I all.min.js:139
> J all.min.js:140
> play all.min.js:141
> seekToPlaybackPosition player.js:386
> commitSeekRequest player.js:347
> Angular 5
> jQuery 8
> Angular 24
> jQuery 2
> {code}
> Recordings made on 1.6.0 works fine.
> When updating to 1.6.0, we migrated from x86 to ARM if this make any
> difference here. Also, this was tested on latest Firefox and Chrome.
> I don't see any warnings/errors in guacamole log when this is happening.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)