You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "escra (Jira)" <ji...@apache.org> on 2026/04/14 23:18:00 UTC
[jira] [Created] (GUACAMOLE-2264) Dockerfile: Set CMAKE_BUILD_TYPE=Release for FreeRDP production builds
escra created GUACAMOLE-2264:
--------------------------------
Summary: Dockerfile: Set CMAKE_BUILD_TYPE=Release for FreeRDP production builds
Key: GUACAMOLE-2264
URL: https://issues.apache.org/jira/browse/GUACAMOLE-2264
Project: Guacamole
Issue Type: Improvement
Components: guacamole-server
Reporter: escra
Fix For: 1.6.1 [staging]
The official Dockerfile builds FreeRDP without specifying CMAKE_BUILD_TYPE. CMake defaults to an empty build type, which in FreeRDP's case enables WINPR_ASSERT runtime assertions (equivalent to WITH_VERBOSE_WINPR_ASSERT=ON).
When FreeRDP encounters any unexpected condition at runtime, WINPR_ASSERT calls abort(), which sends SIGABRT to the guacd child process. The child process terminates silently -- no error message is logged by guacd because the process is killed by the signal before it can log anything.
*Observable symptoms:*
FreeRDP logs this warning at connection startup:
{noformat}
*************************************************
This build is using [runtime-check] build options:
* 'WITH_VERBOSE_WINPR_ASSERT=ON'
*
[runtime-check] build options might slow down the application
*************************************************
{noformat}
Then, under certain conditions (e.g., unexpected server responses, edge cases in NLA negotiation), the child process disappears with no error logged.
*Impact:*
- Random, silent RDP connection failures
- No error diagnostics
- More likely with FreeRDP 3.x (significantly more assertions than 2.x)
*Fix:*
Add -DCMAKE_BUILD_TYPE=Release to FREERDP_OPTS in the Dockerfile. This disables WINPR_ASSERT, enables compiler optimizations, and follows standard practice for production builds. All Linux distribution packages of FreeRDP use Release builds.
*Risk:* Very low. CMAKE_BUILD_TYPE=Release is the standard CMake configuration for production builds.
PR: https://github.com/apache/guacamole-server/pull/660
--
This message was sent by Atlassian Jira
(v8.20.10#820010)