[ 
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)

Reply via email to