xiph / Icecast-Server

Icecast streaming media server (Mirror) - Please report bugs at https://gitlab.xiph.org/xiph/icecast-server/issues

Home Page:https://icecast.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Config file using url auth causes SIGILL on SIGHUP

sprocket-9 opened this issue · comments

Hello icecasters!

Using icecast master cd0a3f9

getting a SIGILL when sending a SIGHUP to reread config file.

Only happens when using url auth:

<mount>                                                                                                                     
    <mount-name>/test</mount-name>                                                                                            
    <authentication type="url">                                                                                               
        <option name="listener_add" value="http://example.com/auth"/>                                                         
    </authentication>                                                                                                         
</mount>   

Server is running on haswell architecture - related: karlheyes/icecast-kh#157

Thread 1 "icecast" received signal SIGHUP, Hangup.
[2017-11-20  23:02:55] INFO sighandler/_sig_hup Caught signal 1, scheduling config re-read...
[2017-11-20  23:02:55] INFO auth_url/auth_get_url_auth URL based authentication setup
[New Thread 0x7fffeebd4700 (LWP 9495)]
[2017-11-20  23:02:55] INFO auth/auth_run_thread Authentication thread started
[2017-11-20  23:02:55] WARN CONFIG/__check_hostname Warning, <hostname> not configured, using default value "localhost". This will cause problems, e.g. this breaks YP directory listings. YP directory listing support will be disabled.
[2017-11-20  23:02:55] WARN CONFIG/_parse_root Warning, <location> not configured, using default value "Earth".
[2017-11-20  23:02:55] WARN CONFIG/_parse_root Warning, <admin> contact not configured, using default value "icemaster@localhost". This breaks YP directory listings. YP directory support will be disabled.
[2017-11-20  23:02:55] INFO auth/auth_run_thread Authentication thread shutting down
[2017-11-20  23:02:55] INFO auth_url/auth_url_clear Doing auth URL cleanup
[2017-11-20  23:02:55] INFO connection/get_tls_certificate No TLS capability on any configured ports
[Thread 0x7ffff7fba700 (LWP 8767) exited]

Thread 5 "icecast" received signal SIGILL, Illegal instruction.
[Switching to Thread 0x7fffeecd6700 (LWP 8770)]
__GI___pthread_rwlock_unlock (rwlock=rwlock@entry=0x642800 <_locks>) at pthread_rwlock_unlock.c:38
38      pthread_rwlock_unlock.c: No such file or directory.


(gdb) bt
#0  __GI___pthread_rwlock_unlock (rwlock=rwlock@entry=0x642800 <_locks>) at pthread_rwlock_unlock.c:38
#1  0x000000000042ac25 in thread_rwlock_unlock_c (rwlock=rwlock@entry=0x642800 <_locks>, line=line@entry=754, file=file@entry=0x42fe9f "cfgfile.c") at thread.c:568
#2  0x000000000040b66c in config_release_config () at cfgfile.c:754
#3  config_reread_config () at cfgfile.c:701
#4  0x0000000000411025 in _slave_thread (arg=arg@entry=0x0) at slave.c:751
#5  0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#6  0x00007ffff68546ba in start_thread (arg=0x7fffeecd6700) at pthread_create.c:333
#7  0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109


(gdb) thread apply all bt

Thread 7 (Thread 0x7fffeebd4700 (LWP 9495)):
#0  0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x000000000042ac86 in thread_sleep (len=len@entry=150000) at thread.c:626
#2  0x000000000042304a in auth_run_thread (arg=arg@entry=0x7fffd800b490) at auth.c:359
#3  0x000000000042a6cd in _start_routine (arg=0x7fffd800bce0) at thread.c:669
#4  0x00007ffff68546ba in start_thread (arg=0x7fffeebd4700) at pthread_create.c:333
#5  0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7fffeec55700 (LWP 8771)):
#0  0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x000000000042ac86 in thread_sleep (len=len@entry=150000) at thread.c:626
#2  0x0000000000421183 in event_run_thread (arg=arg@entry=0x0) at event.c:174
#3  0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#4  0x00007ffff68546ba in start_thread (arg=0x7fffeec55700) at pthread_create.c:333
#5  0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7fffeecd6700 (LWP 8770)):
#0  __GI___pthread_rwlock_unlock (rwlock=rwlock@entry=0x642800 <_locks>) at pthread_rwlock_unlock.c:38
#1  0x000000000042ac25 in thread_rwlock_unlock_c (rwlock=rwlock@entry=0x642800 <_locks>, line=line@entry=754, file=file@entry=0x42fe9f "cfgfile.c") at thread.c:568
#2  0x000000000040b66c in config_release_config () at cfgfile.c:754
#3  config_reread_config () at cfgfile.c:701
#4  0x0000000000411025 in _slave_thread (arg=arg@entry=0x0) at slave.c:751
#5  0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#6  0x00007ffff68546ba in start_thread (arg=0x7fffeecd6700) at pthread_create.c:333
#7  0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7ffff7eb8700 (LWP 8769)):
#0  0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x000000000042ac86 in thread_sleep (len=len@entry=200000) at thread.c:626
#2  0x0000000000428afd in yp_update_thread (arg=arg@entry=0x0) at yp.c:732
#3  0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#4  0x00007ffff68546ba in start_thread (arg=0x7ffff7eb8700) at pthread_create.c:333
#5  0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7ffff7f39700 (LWP 8768)):
#0  0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1  0x000000000042ac86 in thread_sleep (len=len@entry=300000) at thread.c:626
#2  0x000000000041556e in _stats_thread (arg=arg@entry=0x0) at stats.c:737
#3  0x000000000042a6cd in _start_routine (arg=0x68f160) at thread.c:669
#4  0x00007ffff68546ba in start_thread (arg=0x7ffff7f39700) at pthread_create.c:333
#5  0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7ffff7fbc740 (LWP 8763)):
#0  0x00007ffff657e70d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x000000000040c6ee in poll (__timeout=300, __nfds=<optimised out>, __fds=0x7fffffffa450) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  wait_for_serversock (timeout=300) at connection.c:302
#3  _accept_connection (duration=300) at connection.c:371
#4  connection_accept_loop () at connection.c:616
#5  0x000000000040685a in _server_proc () at main.c:356
#6  main (argc=<optimised out>, argv=<optimised out>) at main.c:601


As we track issues over at our Gitlab, I've posted your report there:

https://gitlab.xiph.org/xiph/icecast-server/issues/2329