Klaas Jan Wierenga
2006-Jun-16 08:07 UTC
[Icecast-dev] Crash in Icecast-2.3.1 (in source_recheck_mounts)
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