[Icecast-dev] Crash in Icecast-2.3.1 (in source_recheck_mounts)

Klaas Jan Wierenga k.j.wierenga at home.nl
Fri Jun 16 08:07:12 PDT 2006


Hi all,

I'm experiencing a crash in Icecast 2.3.1 when a lot of sources (300) 
are disconnecting at more-or-less the same time.

I run a test where I set Icecast configured with 300 mount points on one 
machine and attach 300 ezstream source clients from another machine 
serving a low-bitrate stream (24 kbit/sec). When I 'killall ezstream' to 
stop all sources at the same time Icecast crashes with the following 
stacktrace:

#0  avl_get_by_key (tree=0x0, key=0xb6a01308, value_address=0xb6a01310)
    at ../../../src/avl/avl.c:319
#1  0x08060213 in httpp_getvar (parser=0x8cd2100, name=0x8064c56 "ice-name")
    at ../../../src/httpp/httpp.c:518
#2  0x08052f9e in source_update_settings (config=0x8068bc0, 
source=0x8cd9d78,
    mountinfo=0x8cbd618) at ../../src/source.c:1021
#3  0x08053114 in source_recheck_mounts () at ../../src/source.c:1395
#4  0x0805408c in source_client_thread (arg=0x8dad7f0)
    at ../../src/source.c:1244
#5  0x0805fe27 in _start_routine (arg=0x8e18be8)
    at ../../../src/thread/thread.c:655
#6  0x00341bd4 in start_thread () from /lib/libpthread.so.0
#7  0x00d1e4fe in clone () from /lib/libc.so.6

This is running on an AMD Opteron with FC4.

It appears that there is some sort of race-condition or maybe 
source_recheck_mounts needs to acquire an additional lock that it is not 
currently acquiring.
Anyone experiencing the same problem or do you have any idea how I can 
solve this problem, I would very much appreciate the help.

I'm working on a test-bench for Icecast with which I can test Icecast by 
generating configuration files for Icecast and ezstream and some scripts 
to start large numbers of sources and even larger numbers of listeners 
for each source. The test-bench found the problem mentioned above. If 
anyone is interested I can get you a copy of the test-bench.

Regards,

KJ


More information about the Icecast-dev mailing list