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

Reply via email to