Re: Squid AsyncIO and LinuxThread

From: Apiset Tananchai <aet@dont-contact.us>
Date: Mon, 28 Sep 1998 15:51:36 +0700 (ICT)

On Thu, 24 Sep 1998, Duane Wessels wrote:

> Apiset Tananchai writes:
>
> >> >(squid): client_side.c:399: clientHandleIMSReply: Assertion `entry->store_s
> tat
> >> us != STORE_ABORTED' failed.
> >> >(squid): client_side.c:399: clientHandleIMSReply: Assertion `entry->store_s
> tat
> >> us != STORE_ABORTED' failed.
> >> >
> >> >What debug info do you need to solve this problem? I currently set
> >> >debug ALL,1 in squid.conf and see nothing in cache.log that may relate to
> >> >this problem.
> >>
> >> The best place to start is with a stack trace from a debugger (gdb or
> >> dbx).
> >>
> >> The assertion should cause a core file to be generated. You can
> >> use this core file to get a stack trace. Instructions are at
> >> http://squid.nlanr.net/Squid/FAQ/FAQ-11.html#ss11.18
> >> if you need them.
> >
> >Hi Duane,
> >
> >I tried to find the core file but it looks like Linux does not generate it
> >since asyncIO was enabled and LinuxThread was used. From section G.2 of
> >LinuxThread FAQ (http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html)
> >
> >-- quote --
> >G.2: Does it work with post-mortem debugging?
> >
> >Not very well. Generally, the core file does not correspond to the thread
> >that crashed. The reason is that the kernel will not dump core for a
> >process that shares its memory with other processes, such as the other
> >threads of your program. So, the thread that crashes silently disappears
> >without generating a core file. Then, all other threads of your program
> >die on the same signal that killed the crashing thread. (This is required
> >behavior according to the POSIX standard.) The last one that dies is no
> >longer sharing its memory with anyone else, so the kernel generates a core
> >file for that thread. Unfortunately, that's not the thread you are
> >interested in.
> >-- end quote --
> >
> >I think you should mention this in the faq. BTW, since I don't have a core
> >dump file to generate stack trace, do you have other suggestion?
>
> In this case, squid is not generating a coredump from a thread
> process. The code with the assertion always only executes in
> the main process, never in a thread.

Sorry for my misleading, but I still can't seem to find a core file
anywhere (/usr/local/squid/bin, /cache1, /). I've read the faq and try to
follow every step. I added following line to RunCache script, but still
can't get a core file when an assertion occur.

cd /usr/local/squid
ulimit -c unlimited
...
squid -sY $conf >> $logdir/squid.out 2>&1

/usr/local/squid has a lot of room for core (>100MB) so it shouldn't be
the problem. A permission of /usr/local/squid, /cache1, ..etc.. are
all writeable by squid user.

Is someone running squid on Linux has some suggestion? At first, I think
it was because the use of LinuxThread but maybe it not the case.

Regards,

--
aet
Received on Mon Sep 28 1998 - 01:40:59 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:42:12 MST