Hi,
I’m using almalinux 9 on VPS and every few days I got this coredump in logs:
Version is: coturn-4.6.3-1.el9.x86_64
VPS is 20GB HDD, 1 CPU, 1 GB RAM, on HDD is free at least 9GB
MiB Mem : 765.2 total, 204.6 free, 301.0 used, 390.5 buff/cache
MiB Swap: 1024.0 total, 542.2 free, 481.8 used. 464.2 avail Mem
Jun 22 00:04:33 ksj-map systemd-coredump[49093]: Process 14448 (turnserver) of user 986 dumped core.
Stack trace of thread 14450:
#0 0x00005575a8a36f55 turn_log_func_default (turnserver + 0x3ef55)
#1 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#2 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#3 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#4 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#5 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#6 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#7 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#8 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#9 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#10 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#11 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#12 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#13 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#14 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#15 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#16 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#17 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#18 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#19 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#20 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#21 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#22 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#23 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#24 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#25 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#26 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#27 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#28 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#29 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#30 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#31 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#32 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#33 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#34 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#35 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#36 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#37 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#38 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#39 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#40 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#41 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#42 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#43 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#44 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#45 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#46 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#47 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#48 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#49 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#50 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#51 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#52 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#53 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#54 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#55 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#56 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#57 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#58 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#59 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#60 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#61 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#62 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
#63 0x00005575a8a37413 turn_log_func_default (turnserver + 0x3f413)
Stack trace of thread 14448:
#0 0x00007fdfc0d0e84e epoll_wait (libc.so.6 + 0x10e84e)
#1 0x00007fdfc157d66c epoll_dispatch.lto_priv.0 (libevent_core-2.1.so.7 + 0x2866c)
#2 0x00007fdfc15784e1 event_base_loop (libevent_core-2.1.so.7 + 0x234e1)
#3 0x00005575a8a03e3a main (turnserver + 0xbe3a)
#4 0x00007fdfc0c295d0 __libc_start_call_main (libc.so.6 + 0x295d0)
#5 0x00007fdfc0c29680 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x29680)
#6 0x00005575a8a05a05 _start (turnserver + 0xda05)
Stack trace of thread 14449:
#0 0x00007fdfc0d0e84e epoll_wait (libc.so.6 + 0x10e84e)
#1 0x00007fdfc157d66c epoll_dispatch.lto_priv.0 (libevent_core-2.1.so.7 + 0x2866c)
#2 0x00007fdfc15784e1 event_base_loop (libevent_core-2.1.so.7 + 0x234e1)
#3 0x00005575a8a166d0 run_general_relay_thread.lto_priv.0 (turnserver + 0x1e6d0)
#4 0x00007fdfc0c8a19a start_thread (libc.so.6 + 0x8a19a)
#5 0x00007fdfc0d0f210 __clone3 (libc.so.6 + 0x10f210)
Stack trace of thread 14451:
#0 0x00007fdfc0cd4655 clock_nanosleep@GLIBC_2.2.5 (libc.so.6 + 0xd4655)
#1 0x00007fdfc0cd9247 __nanosleep (libc.so.6 + 0xd9247)
#2 0x00007fdfc0cd917e sleep (libc.so.6 + 0xd917e)
#3 0x00005575a8a13aaa run_auth_server_thread.lto_priv.0 (turnserver + 0x1baaa)
#4 0x00007fdfc0c8a19a start_thread (libc.so.6 + 0x8a19a)
#5 0x00007fdfc0d0f210 __clone3 (libc.so.6 + 0x10f210)
Stack trace of thread 14452:
#0 0x00007fdfc0d0e84e epoll_wait (libc.so.6 + 0x10e84e)
#1 0x00007fdfc157d66c epoll_dispatch.lto_priv.0 (libevent_core-2.1.so.7 + 0x2866c)
#2 0x00007fdfc15784e1 event_base_loop (libevent_core-2.1.so.7 + 0x234e1)
#3 0x00005575a8a13b88 run_auth_server_thread.lto_priv.0 (turnserver + 0x1bb88)
#4 0x00007fdfc0c8a19a start_thread (libc.so.6 + 0x8a19a)
#5 0x00007fdfc0d0f210 __clone3 (libc.so.6 + 0x10f210)
Stack trace of thread 14453:
#0 0x00007fdfc0d0e84e epoll_wait (libc.so.6 + 0x10e84e)
#1 0x00007fdfc157d66c epoll_dispatch.lto_priv.0 (libevent_core-2.1.so.7 + 0x2866c)
#2 0x00007fdfc15784e1 event_base_loop (libevent_core-2.1.so.7 + 0x234e1)
#3 0x00005575a8a13b88 run_auth_server_thread.lto_priv.0 (turnserver + 0x1bb88)
#4 0x00007fdfc0c8a19a start_thread (libc.so.6 + 0x8a19a)
#5 0x00007fdfc0d0f210 __clone3 (libc.so.6 + 0x10f210)
Stack trace of thread 14454:
#0 0x00007fdfc0d0e84e epoll_wait (libc.so.6 + 0x10e84e)
#1 0x00007fdfc157d66c epoll_dispatch.lto_priv.0 (libevent_core-2.1.so.7 + 0x2866c)
#2 0x00007fdfc15784e1 event_base_loop (libevent_core-2.1.so.7 + 0x234e1)
#3 0x00005575a8a13c54 run_admin_server_thread.lto_priv.0 (turnserver + 0x1bc54)
#4 0x00007fdfc0c8a19a start_thread (libc.so.6 + 0x8a19a)
#5 0x00007fdfc0d0f210 __clone3 (libc.so.6 + 0x10f210)
ELF object binary architecture: AMD x86-64
░░ Subject: Process 14448 (turnserver) dumped core
░░ Defined-By: systemd
░░ Support: https://wiki.almalinux.org/…ort
░░ Documentation: man:core(5)
░░
░░ Process 14448 (turnserver) crashed and dumped core.
░░
░░ This usually indicates a programming error in the crashing program and
░░ should be reported to its vendor as a bug.
comparsion with newest default config
root@ksj-map coturn]# diff -u turnserver.conf turnserver.conf.rpmnew
--- turnserver.conf 2025-06-10 17:09:26.468941565 +0200
+++ turnserver.conf.rpmnew 2024-12-11 19:13:38.000000000 +0100
@@ -15,7 +15,7 @@
# Note: actually, TLS & DTLS sessions can connect to the
# "plain" TCP & UDP port(s), too - if allowed by configuration.
#
-listening-port=3478
+#listening-port=3478
# TURN listener port for TLS (Default: 5349).
# Note: actually, "plain" TCP & UDP sessions can connect to the TLS & DTLS
@@ -27,7 +27,7 @@
# TLS version 1.0, 1.1 and 1.2.
# For secure UDP connections, Coturn supports DTLS version 1.
#
-tls-listening-port=5349
+#tls-listening-port=5349
# Alternative listening port for UDP and TCP listeners;
# default (or zero) value means "listening port plus one".
@@ -54,10 +54,23 @@
#tcp-proxy-port=5555
# Listener IP address of relay server. Multiple listeners can be specified.
-# If no IP(s) specified in the config file or in the command line options,
-# then all IPv4 and IPv6 system IPs will be used for listening.
+# If no IP is specified in the config file or in the command line options,
+# then all IPv4 system IPs will be used for listening.
+#listening-ip=
+#
+# If you specify '::' as IP, then all IPv6 system IPs will be used for
+# listening.
+#listening-ip=::
+#
+# If you want to listen on all IPv4 as well as on all IPv6, you can do
+#listening-ip=
+#listening-ip=::
+# or
+#listening-ip=0.0.0.0
+#listening-ip=::
#
-listening-ip=0.0.0.0
+# to specify just some IPs you prefer:
+#listening-ip=172.17.19.101
#listening-ip=10.207.21.238
#listening-ip=2607:f0d0:1002:51::4
@@ -125,7 +138,7 @@
#
# By default, this value is empty, and no address mapping is used.
#
-external-ip=#REDACTED
+#external-ip=60.70.80.91
#
#OR:
#
@@ -159,7 +172,7 @@
# Uncomment to run TURN server in 'normal' 'moderate' verbose mode.
# By default the verbose mode is off.
-verbose
+#verbose
# Uncomment to run TURN server in 'extra' verbose mode.
# This mode is very annoying and produces lots of output.
@@ -192,12 +205,24 @@
#
# You can simply run the turnserver and access the port 9641 and path /metrics
#
+# This is currently unavailable on apt installations
+#
# For more info on the prometheus exporter and metrics
# https://prometheus.io/docs/introduction/overview/
# https://prometheus.io/docs/concepts/data_model/
#
#prometheus
+# Enable labeling prometheus traffic metrics with client usernames.
+# Labeling with client usernames is disabled by default, because this may cause memory
+# leaks when using authentication with ephemeral usernames (e.g. TURN REST API).
+#
+#prometheus-username-labels
+
+# Prometheus listener port (Default: 9641).
+#
+#prometheus-port=9641
+
# TURN REST API flag.
# (Time Limited Long Term Credential)
# Flag that sets a special authorization option that is based upon authentication secret.
@@ -355,7 +380,7 @@
# Note: If the default realm is not specified, then realm falls back to the host domain name.
# If the domain name string is empty, or set to '(None)', then it is initialized as an empty string.
#
-realm=#REDACTED
+#realm=mycompany.org
# This flag sets the origin consistency
# check. Across the session, all requests must have the same
@@ -465,6 +490,13 @@
#
#pkey=/etc/pki/coturn/private/turn_server_pkey.pem
+# Raw public keys support.
+# On/off switch for RFC-7250 aka raw public keys.
+# Keep in mind, in order for rpks to work,
+# coturn must be built against openSSL version at least 3.2.1
+#
+#raw-public-keys
+
# Private key file password, if it is in encoded format.
# This option has no default value.
#
@@ -723,6 +755,7 @@
# Enable Web-admin support on https. By default it is Disabled.
# If it is enabled it also enables a http a simple static banner page
# with a small reminder that the admin page is available only on https.
+# Not supported if no-tls option used
#
#web-admin
@@ -794,3 +827,9 @@
# binding responses.
#
response-origin-only-with-rfc5780
+
+# Return an HTTP/S response when an HTTP/S connection is made to a TCP port
+# otherwise only supporting STUN/TURN. This may be useful for debugging and
+# diagnosing connection problems. A "400 Not supported" response is currently
+# returned.
+#respond-http-unsupported
In firewall I have added access to ports 3478/udp and 3478/tcp