Skip to content

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

Merged
mike-jumper merged 1 commit intoapache:staging/1.6.0from
corentin-soriano:GUACAMOLE-1997_freerdp_screen_resize
Nov 9, 2024
Merged

GUACAMOLE-1997: Fix issue on screen resize with freerdp >= 3.8.0.#563
mike-jumper merged 1 commit intoapache:staging/1.6.0from
corentin-soriano:GUACAMOLE-1997_freerdp_screen_resize

Conversation

@corentin-soriano
Copy link
Copy Markdown
Member

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
Copy Markdown
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.

Comment thread src/protocols/rdp/gdi.c Outdated
@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
@corentin-soriano corentin-soriano deleted the GUACAMOLE-1997_freerdp_screen_resize branch May 30, 2025 11:20
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