Hi, I have built libguac on Windows using a MinGW pull request and a custom guacd that does this,
a broker accepts socket connections, creates a child worker (1 for each connection), duplicates the socket and passes it via a pipe to the worker and then it loads libguac and starts handling the connection. (all of this on Windows) I am facing scenarios where the socket connection between the Guacamole Client and guacd (worker.exe) is closed but the worker.exe was kept running in the background, at the function *PFW_LFR_guac_display_plan_create* https://github.com/apache/guacamole-server/blob/772a65a3334f7ded6d43cbe5e2ed347040a1fb52/src/libguac/display-plan.c#L157 (NOTE: This build is a clone of guacamole server repo dated 22nd May, 2025 this file hasn't been updated since then, could be missing something else) Can there be a case where the buffers of the layers of display might already have been set to NULL and it enters this function because of which, it will keep on looping after checking this if condition, if (current->pending_frame.buffer == NULL) { GUAC_ASSERT(current->pending_frame.buffer_is_external); continue; } I am not able to reproduce this consistently so any inputs on this will be very helpful. - Palaash
