On 25 Jul 2005 Martin Cap macap20001@compuserve.de wrote:
#0 0xb7f446a1 in __read_nocancel () from /lib/tls/libpthread.so.0 #1 0xb7692e32 in cStream::Stream (this=0x92bab70, data=@0xb1385618, len=@0xb138561c, rest=0x7ff9 <Address 0x7ff9 out of bounds>) at stream.c:256 #2 0xb7699b66 in cScanID3::DoScan (this=0x92bac18) at decoder-mp3.c:38 #3 0xb76989ee in cMP3Decoder::Start (this=0x92baad0) at decoder-mp3.c:155 #4 0xb769165d in cMP3Player::Action (this=0x92829a0) at player-mp3.c:1798 #5 0x080ef2a2 in cThread::StartThread () #6 0xb7f3fb63 in start_thread () from /lib/tls/libpthread.so.0 #7 0xb7df418a in clone () from /lib/tls/libc.so.6
So the dead-lock happens at line 256. Strange, obviously. (I can output what r + errno give me when returning from read() and post it here.)
Without loocking at the details, I still cannot understand why this code part is reached.
For me there are only 3 ways for this: 1.) You have disabled USE_MMAP at the beginning of stream.c 2.) The file is bigger than MAX_MMAP_SIZE (currently 32mb) 3.) mmap() failed for some reason (should give syslog entry if run in debug loglevel)
Regards.