Bug url = http://jira.freeswitch.org/browse/FS-3053 Hello guys, me again. Now with another bug that i found. I set the "perpetual-sound" variable in the conference.conf.xml to play mp3 files that my customer chooses. but when a mp3 with 71mb or more is played, it crashed the machine when was more than one user listening to the mp3. i tried a file with 99mb and crash too. but when i use a file with 10mb or less, works fine. i looked at the core file and see this: =================================================================================================================================================================== FreeSWITCH Version 1.0.head (git-2401fec 2011-02-08 13-01-42 -0600) --------------------------------------------------------------------------------- Core was generated by `/usr/local/freeswitch/bin/freeswitch -nc -core -waste'. Program terminated with signal 6, Aborted. #0 0x002f6402 in __kernel_vsyscall () (gdb) bt #0 0x002f6402 in __kernel_vsyscall () #1 0x003d9df0 in vfprintf () from /lib/libc.so.6 #2 0x003db701 in vfprintf () from /lib/libc.so.6 #3 0x0041228b in strcoll_l () from /lib/libc.so.6 #4 0x0041a5a5 in ____wcstold_l_internal () from /lib/libc.so.6 #5 0x0041a9e9 in ____wcstold_l_internal () from /lib/libc.so.6 #6 0x0033e675 in parse_new_id3 (fr=0xbc53390, first4bytes=<value optimized out>) at id3.c:736 #7 0x0035a185 in read_frame (fr=0xbc53390) at parse.c:442 #8 0x0034f692 in get_next_frame (mh=0xbc53390) at libmpg123.c:495 #9 0x00350837 in mpg123_decode (mh=0xbc53390, inmemory=0x0, inmemsize=0, outmemory=0xa1b21e0 "", outmemsize=16384, done=0x700d01f8) at libmpg123.c:692 #10 0x003509a3 in mpg123_read (mh=0xbc53390, out=0xa1b21e0 "", size=16384, done=0x700d01f8) at libmpg123.c:602 #11 0x00305f1b in decode_fd (handle=0xa28b210, data=0xa62b7e0, len=0x700d0258) at /usr/src/freeswitch/src/mod/formats/mod_shout/mod_shout.c:310 #12 shout_file_read (handle=0xa28b210, data=0xa62b7e0, len=0x700d0258) at /usr/src/freeswitch/src/mod/formats/mod_shout/mod_shout.c:853 #13 0x00c89eba in switch_core_file_read (fh=0xa28b210, data=0xa289148, len=0x700d3350) at src/switch_core_file.c:241 #14 0x001a42fc in conference_thread_run (thread=0x9ff50e0, obj=0x9ff4c30) at /usr/src/freeswitch/src/mod/applications/mod_conference/mod_conference.c:1188 #15 0x00d27726 in dummy_worker (opaque=0x9ff50e0) at threadproc/unix/thread.c:138 #16 0x00504832 in _L_unlock_3870 () from /lib/libpthread.so.0 #17 0x0050483d in _L_unlock_3870 () from /lib/libpthread.so.0 Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) frame 6 #6 0x0033e675 in parse_new_id3 (fr=0xbc53390, first4bytes=<value optimized out>) at id3.c:736 736 free(tagdata); (gdb) list 731 { 732 if(NOQUIET) error("ID3v2: Duh, not able to read ID3v2 tag data."); 733 ret = ret2; 734 } 735 tagparse_cleanup: 736 free(tagdata); 737 } 738 else 739 { 740 if(NOQUIET) error1("ID3v2: Arrg! Unable to allocate %lu bytes for interpreting ID3v2 data - trying to skip instead.", length); (gdb) print tag data No symbol "tag" in current context. (gdb) print tagdata $1 = <value optimized out> (gdb) frame 13 #13 0x00c89eba in switch_core_file_read (fh=0xa28b210, data=0xa289148, len=0x700d3350) at src/switch_core_file.c:241 241 if ((status = fh->file_interface->file_read(fh, fh->pre_buffer_data, &rlen)) != SWITCH_STATUS_SUCCESS || !rlen) { (gdb) list 236 237 if (!switch_test_flag(fh, SWITCH_FILE_BUFFER_DONE)) { 238 rlen = asis ? fh->pre_buffer_datalen : fh->pre_buffer_datalen / 2; 239 240 if (switch_buffer_inuse(fh->pre_buffer) < rlen * 2) { 241 if ((status = fh->file_interface->file_read(fh, fh->pre_buffer_data, &rlen)) != SWITCH_STATUS_SUCCESS || !rlen) { 242 switch_set_flag(fh, SWITCH_FILE_BUFFER_DONE); 243 } else { 244 fh->samples_in += rlen; 245 if (fh->channels > 1) { (gdb) print fh $2 = (switch_file_handle_t *) 0xa28b210 (gdb) print *fh $3 = {file_interface = 0xb212ed68, flags = 2057, fd = 0x0, samples = 0, samplerate = 8000, native_rate = 8000, channels = 1 '\001', format = 0, sections = 0, seekable = 1, sample_count = 0, speed = 0, memory_pool = 0xa28b150, prebuf = 0, interval = 0, private_info = 0xa1b20c8, handler = 0x0, pos = 0, audio_buffer = 0x0, sp_audio_buffer = 0x0, thresh = 0, silence_hits = 0, offset_pos = 0, samples_in = 0, samples_out = 0, vol = 0, resampler = 0x0, buffer = 0x0, dbuf = 0x0, dbuflen = 0, pre_buffer = 0xa624858, pre_buffer_data = 0xa62b7e0 "", pre_buffer_datalen = 65536, file = 0x1abf00 "/usr/src/freeswitch/src/mod/applications/mod_conference/mod_conference.c", func = 0x1acedb "conference_play_file", line = 2993, file_path = 0xa28b2d0 "/usr/local/freeswitch/sounds/flex/app186/en/conferencemusics/73036.mp3", spool_path = 0x0, prefix = 0x0} (gdb) =================================================================================================================================================================== Someone have a ideia of whats happenning? i'm providing the link to download the core file to analyses: http://dl.dropbox.com/u/21117321/core.26585.gz Thanks. -- Leonardo Pires Bidinoto Voice Technology www.voicetechnology.com.br