flcontainers / guacamole

A Docker Container for Apache Guacamole, a client-less remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH over HTML5. For x64, arm64 and ppc64le.
https://hub.docker.com/r/flcontainers/guacamole
GNU General Public License v3.0
316 stars 60 forks source link

libgomp: could not create thread pool destructor guacd #124

Closed Cob0ld closed 1 month ago

Cob0ld commented 2 months ago

this error is spammed in the output log and no rdp session is possible after this has started. I'm having this issue since we updated to the latest version 1.5.4

any thought was could cause this ?

walterzilla commented 2 months ago

Same here, moreover the trigger event seems to be uncertain since after a restart sometimes it's all running smooth for days, other times get stuck within a short time...

P.S.: saw the testing version released just a few hours ago...who knows, maybe...

Cob0ld commented 2 months ago

@amenolo good to hear its not only me. And yeah i was eyeing the testing version aswell and hope this error will be fixed soon,

MaxWaldorf commented 1 month ago

please try 1.5.5

walterzilla commented 1 month ago

please try 1.5.5

Sadly current 1.5.5 seems to break something since returns a blocking error while connecting:

image

Related log:

Creating db password
Running startup scripts
Preparing Config Folder
Init DB Check
Post startup DB scripts
Guacamole client waiting for DB
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locales
  COLLATE:  C
  CTYPE:    C.UTF-8
  MESSAGES: C
  MONETARY: C
  NUMERIC:  C
  TIME:     C
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /config/postgres ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Europe/Rome
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
syncing data to disk ... ok

Success.

waiting for server to start....2024-07-30 01:17:46.189 CEST [62] LOG:  starting PostgreSQL 13.15 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-07-30 01:17:46.196 CEST [62] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2024-07-30 01:17:46.215 CEST [63] LOG:  database system was shut down at 2024-07-30 01:17:45 CEST
2024-07-30 01:17:46.223 CEST [62] LOG:  database system is ready to accept connections
 done
server started
CREATE DATABASE

/usr/local/bin/_postgres.sh: ignoring /docker-entrypoint-initdb.d/*

waiting for server to shut down....2024-07-30 01:17:46.405 CEST [62] LOG:  received fast shutdown request
2024-07-30 01:17:46.411 CEST [62] LOG:  aborting any active transactions
2024-07-30 01:17:46.413 CEST [62] LOG:  background worker "logical replication launcher" (PID 69) exited with exit code 1
2024-07-30 01:17:46.413 CEST [64] LOG:  shutting down
2024-07-30 01:17:46.450 CEST [62] LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

2024-07-30 01:17:46.532 CEST [18] LOG:  starting PostgreSQL 13.15 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-07-30 01:17:46.532 CEST [18] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2024-07-30 01:17:46.532 CEST [18] LOG:  could not bind IPv6 address "::1": Address not available
2024-07-30 01:17:46.532 CEST [18] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2024-07-30 01:17:46.545 CEST [18] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2024-07-30 01:17:46.558 CEST [77] LOG:  database system was shut down at 2024-07-30 01:17:46 CEST
2024-07-30 01:17:46.567 CEST [18] LOG:  database system is ready to accept connections
Connection to localhost (127.0.0.1) 5432 port [tcp/postgresql] succeeded!
database port open... Finishing Configuration
CREATE TYPE
(...)
CREATE INDEX
INSERT 0 1
INSERT 0 1
INSERT 0 6
INSERT 0 3
DB Preparation finished exiting for main processes...
2024-07-30 01:17:51.065 CEST [18] LOG:  received fast shutdown request
2024-07-30 01:17:51.072 CEST [18] LOG:  aborting any active transactions
2024-07-30 01:17:51.073 CEST [18] LOG:  background worker "logical replication launcher" (PID 83) exited with exit code 1
2024-07-30 01:17:51.073 CEST [78] LOG:  shutting down
2024-07-30 01:17:51.161 CEST [18] LOG:  database system is shut down
waiting for server to shut down.... done
server stopped
2024-07-30 01:17:51,277 INFO Set uid to user 0 succeeded
2024-07-30 01:17:51,279 INFO supervisord started with pid 1
2024-07-30 01:17:52,281 INFO spawned: 'postgresql' with pid 95
2024-07-30 01:17:52,282 INFO spawned: 'tomcat' with pid 96
2024-07-30 01:17:52,284 INFO spawned: 'guacd' with pid 97
2024-07-30 01:17:53,356 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-07-30 01:17:53,356 INFO success: tomcat entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-07-30 01:17:53,356 INFO success: guacd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

No further log entries when error appears.


Rollbacking to 1.5.4 solves the issue, related log:

Running startup scripts
Preparing Config Folder
Running Postgres
Starting Postgres...
Running Guacamole server
Post startup DB scripts
Running postgres init
Running postgres init
guacd[19]: INFO:    Guacamole proxy daemon (guacd) version 1.5.4 started
guacd[19]: INFO:    Listening on host 0.0.0.0, port 4822
********************************************************************************
WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow
         anyone with access to the Postgres port to access your database without
         a password, even if POSTGRES_PASSWORD is set. See PostgreSQL
         documentation about "trust":
         https://www.postgresql.org/docs/current/auth-trust.html
         In Docker's default configuration, this is effectively any other
         container on the same system.

         It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace
         it with "-e POSTGRES_PASSWORD=password" instead to set a password in
         "docker run".
********************************************************************************
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locales
  COLLATE:  C
  CTYPE:    C.UTF-8
  MESSAGES: C
  MONETARY: C
  NUMERIC:  C
  TIME:     C
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /config/postgres ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Europe/Rome
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success.

initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
waiting for server to start....2024-07-30 01:25:22.375 CEST [62] LOG:  starting PostgreSQL 13.13 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-07-30 01:25:22.381 CEST [62] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2024-07-30 01:25:22.400 CEST [63] LOG:  database system was shut down at 2024-07-30 01:25:22 CEST
2024-07-30 01:25:22.409 CEST [62] LOG:  database system is ready to accept connections
 done
server started
CREATE DATABASE

/usr/local/bin/_postgres.sh: ignoring /docker-entrypoint-initdb.d/*

waiting for server to shut down....2024-07-30 01:25:22.599 CEST [62] LOG:  received fast shutdown request
2024-07-30 01:25:22.605 CEST [62] LOG:  aborting any active transactions
2024-07-30 01:25:22.606 CEST [62] LOG:  background worker "logical replication launcher" (PID 69) exited with exit code 1
2024-07-30 01:25:22.606 CEST [64] LOG:  shutting down
2024-07-30 01:25:22.650 CEST [62] LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

2024-07-30 01:25:22.728 CEST [18] LOG:  starting PostgreSQL 13.13 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-07-30 01:25:22.728 CEST [18] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2024-07-30 01:25:22.728 CEST [18] LOG:  could not bind IPv6 address "::1": Address not available
2024-07-30 01:25:22.728 CEST [18] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2024-07-30 01:25:22.740 CEST [18] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2024-07-30 01:25:22.753 CEST [77] LOG:  database system was shut down at 2024-07-30 01:25:22 CEST
2024-07-30 01:25:22.761 CEST [18] LOG:  database system is ready to accept connections
Connection to localhost (127.0.0.1) 5432 port [tcp/postgresql] succeeded!
database port open... Finishing Configuration
CREATE TYPE
(...)
CREATE INDEX
INSERT 0 1
INSERT 0 1
INSERT 0 6
INSERT 0 3
Running Tomcat
Connection to localhost (127.0.0.1) 5432 port [tcp/postgresql] succeeded!
Tomcat started.
container started

BTW I happened to notice that the current 1.5.5 has been released a few hours ago while a few days ago Watchtower downloaded a 1.5.5 release which was/is working flawlessy

image

Related log:

Running startup scripts
Preparing Config Folder
Running Postgres
Starting Postgres...
Running Guacamole server
Post startup DB scripts
Running postgres init
Running postgres init
guacd[19]: INFO:    Guacamole proxy daemon (guacd) version 1.5.5 started
guacd[19]: INFO:    Listening on host 0.0.0.0, port 4822
********************************************************************************
WARNING: POSTGRES_HOST_AUTH_METHOD has been set to "trust". This will allow
         anyone with access to the Postgres port to access your database without
         a password, even if POSTGRES_PASSWORD is set. See PostgreSQL
         documentation about "trust":
         https://www.postgresql.org/docs/current/auth-trust.html
         In Docker's default configuration, this is effectively any other
         container on the same system.

         It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace
         it with "-e POSTGRES_PASSWORD=password" instead to set a password in
         "docker run".
********************************************************************************
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locales
  COLLATE:  C
  CTYPE:    C.UTF-8
  MESSAGES: C
  MONETARY: C
  NUMERIC:  C
  TIME:     C
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /config/postgres ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Europe/Rome
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
syncing data to disk ... ok

Success.

waiting for server to start....2024-07-30 01:33:58.775 CEST [64] LOG:  starting PostgreSQL 13.15 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-07-30 01:33:58.780 CEST [64] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2024-07-30 01:33:58.794 CEST [65] LOG:  database system was shut down at 2024-07-30 01:33:58 CEST
2024-07-30 01:33:58.801 CEST [64] LOG:  database system is ready to accept connections
 done
server started
CREATE DATABASE

/usr/local/bin/_postgres.sh: ignoring /docker-entrypoint-initdb.d/*

waiting for server to shut down....2024-07-30 01:33:59.009 CEST [64] LOG:  received fast shutdown request
2024-07-30 01:33:59.019 CEST [64] LOG:  aborting any active transactions
2024-07-30 01:33:59.021 CEST [64] LOG:  background worker "logical replication launcher" (PID 71) exited with exit code 1
2024-07-30 01:33:59.021 CEST [66] LOG:  shutting down
2024-07-30 01:33:59.054 CEST [64] LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

2024-07-30 01:33:59.138 CEST [18] LOG:  starting PostgreSQL 13.15 on x86_64-alpine-linux-musl, compiled by gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014, 64-bit
2024-07-30 01:33:59.138 CEST [18] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2024-07-30 01:33:59.138 CEST [18] LOG:  could not bind IPv6 address "::1": Address not available
2024-07-30 01:33:59.138 CEST [18] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2024-07-30 01:33:59.147 CEST [18] LOG:  listening on Unix socket "/run/postgresql/.s.PGSQL.5432"
2024-07-30 01:33:59.162 CEST [79] LOG:  database system was shut down at 2024-07-30 01:33:59 CEST
2024-07-30 01:33:59.170 CEST [18] LOG:  database system is ready to accept connections
Connection to localhost (127.0.0.1) 5432 port [tcp/postgresql] succeeded!
database port open... Finishing Configuration
CREATE TYPE
(...)
INSERT 0 3
Running Tomcat
Connection to localhost (127.0.0.1) 5432 port [tcp/postgresql] succeeded!
Tomcat started.
container started

Tests done starting from scratch (i.e. no pre-existent config).

MaxWaldorf commented 1 month ago

previous 1.5.5 had a breaking flaw in folder permissions which was preventing extensions from working

MaxWaldorf commented 1 month ago

I don't understand... might be something with freeRDP 2 but nothing I do more on my side.

Works for me on W10 and W11 though...

MaxWaldorf commented 1 month ago

ok I see the issue: FreeRDP initialization may fail: The current user's home directory ("/root") is not writable, but FreeRDP generally requires a writable home directory for storage of configuration files and certificates.

Will need to investigate rapidly and fix 1.5.5

walterzilla commented 1 month ago

previous 1.5.5 had a breaking flaw in folder permissions which was preventing extensions from working

Ohh I see, make sense since ATM I don't use no extensions on my instances.

MaxWaldorf commented 1 month ago

1.5.5 fixed again... please try

walterzilla commented 1 month ago

1.5.5 fixed again... please try

AFAICT it's working again, thanks 👍

BTW I'll keep an eye on the original error.