Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUACAMOLE-1997: Fix issue on screen resize with freerdp >= 3.8.0. #563

Conversation

corentin-soriano
Copy link
Contributor

With freerdp >= 3.8.0, we can't resize with "display-update":

guacd[609180]: DEBUG:   Display update channel will be used for display size changes.
guacd[609180]: DEBUG:   {Microsoft::Windows::RDS::DisplayControl:16} OnOpen=(nil), OnClose=0x7f40b610b150
guacd[609180]: DEBUG:   Server resized display to 768x583
GUAC_ASSERT in guac_rdp_gdi_end_paint() failed at gdi.c:102.
guacd[609080]: INFO:    Connection "$3ec11dae-60d9-4820-9028-01a10f4e95f4" removed.
guacd[609080]: DEBUG:   Unable to request termination of client process: No such process 
guacd[609080]: DEBUG:   All child processes for connection "$3ec11dae-60d9-4820-9028-01a10f4e95f4" have been terminated. 

Caused by this bugfix in freerdp: FreeRDP/FreeRDP#10488
Freerdp triggers EndPaint first when resizing to ensure there are no unfinished BeginPaints.

@mike-jumper
Copy link
Contributor

Freerdp triggers EndPaint first when resizing to ensure there are no unfinished BeginPaints.

I'm a little concerned about that fix in FreeRDP/FreeRDP#10488. Triggering an EndPaint without a corresponding BeginPaint sounds like broken behavior. I see a check in the FreeRDP PR that verifies whether BeginPaint was called, but that check doesn't happen until after EndPaint has been called.

I'll read through the surrounding code on our end a bit deeper, but my main concern is that this change in behavior could cause a race condition in the handling of "Display Update" vs. GDI updates.

src/protocols/rdp/gdi.c Outdated Show resolved Hide resolved
@corentin-soriano corentin-soriano force-pushed the GUACAMOLE-1997_freerdp_screen_resize branch from 7791c23 to 11ea330 Compare November 5, 2024 07:24
@mike-jumper mike-jumper merged commit 691bd6f into apache:staging/1.6.0 Nov 9, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants