Coturn coredump

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

Looks like a bug in 4.6.3: Segmentation fault on SIGHUP · Issue #1629 · coturn/coturn · GitHub
Upgrading to 4.7.0 (coturn-4.7.0-1.el9) should fix it.

Since you mentioned the ticket, it didn’t happen again. So, closing the ticket.

This topic was automatically closed 360 days after the last reply. New replies are no longer allowed.