Hi all -

I'm working on a trafficserver plugin - and if I spin my ~40 case test
suite through TS repeatedly I can pretty easily reproduce the assert
below. (It is not deterministic, sometimes it takes just a couple
iterations, sometimes dozens.)

Ts is 2.0.0 that I compiled myself in debug mode on 64 bit linux.

I've run it through valgrind and haven't seen my plugin doing anything
suspicious - but I cannot reproduce the assert without the plugin
installed. The plugin does change the document size and content.

Unfortuantely, I don't own the copyright on the plugin code, so I cannot
post it in whole.

Anyone have any thoughts on what I might be doing wrong, or if there is
a caching problem related to adaptations that change document sizes?

FATAL: CacheDir.cc:693: failed assert `(unsigned int) dir_approx_size(dir) <= 
(unsigned int) (MAX_FRAG_SIZE + sizeofDoc)`
/home/mcmanus/ts/bin/traffic_server - STACK TRACE: 
/home/mcmanus/ts/bin/traffic_server(ink_fatal_va+0xcb)[0x7579bb]
/home/mcmanus/ts/bin/traffic_server(ink_fatal+0xc7)[0x757aa5]
/home/mcmanus/ts/bin/traffic_server(_ink_assert+0xdb)[0x756bff]
/home/mcmanus/ts/bin/traffic_server(_Z13dir_overwriteP7INK_MD5P4PartP3DirS4_b+0x18d)[0x6e8838]
/home/mcmanus/ts/bin/traffic_server(_ZN7CacheVC22openWriteCloseHeadDoneEiP5Event+0x189)[0x70a2d1]
/home/mcmanus/ts/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x4f1c22]
/home/mcmanus/ts/bin/traffic_server(_ZN12PartCallback12aggWriteDoneEiP5Event+0x137)[0x7055dd]
/home/mcmanus/ts/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x4f1c22]
/home/mcmanus/ts/bin/traffic_server(_ZN7EThread13process_eventEP5Eventi+0x131)[0x74e66f]
/home/mcmanus/ts/bin/traffic_server(_ZN7EThread7executeEv+0x31e)[0x74eb12]
/home/mcmanus/ts/bin/traffic_server[0x74d1c6]
/lib/libpthread.so.0(+0x69ca)[0x7ffff7bc59ca]
/lib/libc.so.6(clone+0x6d)[0x7ffff59aa6fd]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff46a3710 (LWP 24261)]
0x00007ffff58f7a75 in *__GI_raise (sig=<value optimized out>) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
        in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
#0  0x00007ffff58f7a75 in *__GI_raise (sig=<value optimized out>) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff58fb5c0 in *__GI_abort () at abort.c:92
#2  0x00000000007578f0 in ink_die_die_die (retval=1) at ink_error.cc:43
#3  0x00000000007579c8 in ink_fatal_va (return_code=1, 
    message_format=0x7ffff46a29b0 "CacheDir.cc:693: failed assert `(unsigned 
int) dir_approx_size(dir) <= (unsigned int) (MAX_FRAG_SIZE + sizeofDoc)`", 
ap=0x7ffff46a28b0)
    at ink_error.cc:67
#4  0x0000000000757aa5 in ink_fatal (return_code=1, 
    message_format=0x7ffff46a29b0 "CacheDir.cc:693: failed assert `(unsigned 
int) dir_approx_size(dir) <= (unsigned int) (MAX_FRAG_SIZE + sizeofDoc)`") at 
ink_error.cc:75
#5  0x0000000000756bff in _ink_assert (a=0x7ec9e0 "(unsigned int) 
dir_approx_size(dir) <= (unsigned int) (MAX_FRAG_SIZE + sizeofDoc)", f=0x7ec64c 
"CacheDir.cc", l=693)
    at ink_assert.cc:47
#6  0x00000000006e8838 in dir_overwrite (key=0x1c21fe0, d=0x19d04d0, 
dir=0x1c22010, overwrite=0x1c370b8, must_overwrite=false) at CacheDir.cc:693
#7  0x000000000070a2d1 in CacheVC::openWriteCloseHeadDone (this=0x1c21f90, 
event=3900, e=0x0) at CacheWrite.cc:1170
#8  0x00000000004f1c22 in Continuation::handleEvent (this=0x1c21f90, 
event=3900, data=0x0) at ../iocore/eventsystem/I_Continuation.h:147
#9  0x00000000007055dd in PartCallback::aggWriteDone (this=0x19cdda0, event=1, 
e=0x1bc95e0) at CacheWrite.cc:327
#10 0x00000000004f1c22 in Continuation::handleEvent (this=0x19cdda0, event=1, 
data=0x1bc95e0) at ../iocore/eventsystem/I_Continuation.h:147
#11 0x000000000074e66f in EThread::process_event (this=0x7ffff4aa8010, 
e=0x1bc95e0, calling_code=1) at UnixEThread.cc:113
#12 0x000000000074eb12 in EThread::execute (this=0x7ffff4aa8010) at 
UnixEThread.cc:219
#13 0x000000000074d1c6 in spawn_thread_internal (a=0xc090c0) at Thread.cc:85
#14 0x00007ffff7bc59ca in start_thread (arg=<value optimized out>) at 
pthread_create.c:300
#15 0x00007ffff59aa6fd in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()
(gdb) 


Reply via email to