Hi,

I'm getting a crasher with the following call stack. Apparently it
happens only when multiple threads have the same call stack.


#0  0x4001e424 in __kernel_vsyscall ()
#1  0x40527941 in raise () from /lib/libc.so.6
#2  0x4052ae42 in abort () from /lib/libc.so.6
#3  0x082f2cbc in ink_die_die_die (return_code=1,
message_format=0x834fc18 "ink_memalign: couldn't allocate %d bytes at
alignment %d - insufficient memory", ap=0x415b3e68 "") at
ink_error.cc:43
#4  ink_fatal_va (return_code=1, message_format=0x834fc18
"ink_memalign: couldn't allocate %d bytes at alignment %d -
insufficient memory", ap=0x415b3e68 "") at ink_error.cc:65
#5  0x082f2cf7 in ink_fatal (return_code=1, message_format=0x834fc18
"ink_memalign: couldn't allocate %d bytes at alignment %d -
insufficient memory") at ink_error.cc:73
#6  0x082f3fc5 in ink_memalign (alignment=8192, size=67108864) at
ink_memory.cc:124
#7  0x082f4762 in ink_freelist_new (f=0x886ec28) at ink_queue.cc:260
#8  0x080e60f8 in MIOBuffer::add_block() ()
#9  0x082e7ae4 in MIOBuffer::write (this=0x9b35fd0, abuf=0x8334750,
alen=2) at IOBuffer.cc:102
#10 0x0819eb38 in ChunkedHandler::generate_chunked_content
(this=0x47af1c24) at HttpTunnel.cc:426
#11 0x081a0847 in producer_handler_dechunked (this=0x47af1a28,
event=100, p=0x47af1c00) at HttpTunnel.cc:953
#12 HttpTunnel::producer_handler (this=0x47af1a28, event=100,
p=0x47af1c00) at HttpTunnel.cc:1051
#13 0x081a14fe in HttpTunnel::main_handler (this=0x47af1a28,
event=3155, data=0x9b578fc) at HttpTunnel.cc:1453
#14 0x08119741 in TransformTerminus::handle_event (this=0x9b578b0,
event=1, edata=0x479aec90) at Transform.cc:279
#15 0x082ea8c2 in handleEvent (this=0x40dad008, e=0x479aec90,
calling_code=1) at I_Continuation.h:147
#16 EThread::process_event (this=0x40dad008, e=0x479aec90,
calling_code=1) at UnixEThread.cc:149
#17 0x082eb2ec in EThread::execute (this=0x40dad008) at UnixEThread.cc:198
#18 0x082e888c in spawn_thread_internal (a=0x9ab75e8) at Thread.cc:85
#19 0x4012acc9 in start_thread () from /lib/libpthread.so.0
#20 0x405cd69e in clone () from /lib/libc.so.6


I'm trying to understand the code. What is a freelist ? What is it
being used for?
My question is whether ink_freelist_new is thread safe?


In trying to understand this I got a few more doubts.

What is a micro-TS build?
Also, I tried adding a "#define INK_USE_MUTEX_FOR_FREELISTS    1" to
the ink_config.h.in file. Traffic_server does not even launch when
built with this flag.

Any ideas that might help me understand the code and track this crasher?

Thanks,
Aniket Ray

Reply via email to