There's also the setuid(2)/seteuid(2)/setguid(2)/seteguid(2) issue on Linux (the kernel does not dump core setXid programs).
There are a few places that trafficserver calls those system calls (eg. in runAsUser()). There are 2 ways of working around this: 1) In Sun Grid Engine (now the commercial Oracle Grid Engine and the Open-Source Grid Engine project called Open Grid Scheduler) we use an LD_PRELOAD wrapper to reset the core-dump bit after those system calls are called. You might want to take a look at our wrapper: http://gridscheduler.sourceforge.net/patches/libcore.c % gcc -D_GNU_SOURCE -fPIC -c libcore.c % gcc -shared -o libcore.so libcore.o -lpthread Then LD_PRELOAD libcore.so into the application to enable core dump. 2) There is also a easier (but a bit less secure way), and enabling it could cause sensitive data to be dumped to disk as it is a system-wide setting: # sysctl -w kernel.core_setuid_ok=1 Rayson On Sat, Aug 27, 2011 at 10:24 AM, Leif Hedstrom <[email protected]> wrote: > On 08/26/2011 11:32 PM, Alan M. Carroll wrote: >> >> I want to have traffic_server leave behind a core file when it crashes but >> can't seem to make it happen. I have >> >> * Used ulimit -c >> * Set the core limit high in /etc/security/limits.conf >> * Set proxy.config.core_limit to -1 >> * Verified that setrlimit is being called with a very large limit. >> * Set the permissions to 777 on INSTALL and INSTALL/bin. >> > > > Did you specify where it's should core dump? There's a sysctl for that. > > -- Leif > > ================================================== Open Grid Scheduler - The Official Open Source Grid Engine http://gridscheduler.sourceforge.net/
