Re: [Feature Request?] Inline compression of process core dumps

Randy Dunlap
2007-04-13T02:37:45Z

On Thu, 12 Apr 2007 22:22:18 -0400 Christopher S. Aker wrote:

> Alan Cox wrote:
> > Indeed. So useful that in current kernels you can set the core dump
> > path to be
> >
> > "|application"
>
> Cool stuff! However, it's not working (2.6.20.6):
>
> Core dump to |/home/caker/bin/dumper.pl.4442 pipe failed
>
> even though...
>
> # cat /proc/sys/kernel/core_uses_pid
> 0
> # cat /proc/sys/kernel/core_pattern
> |/home/caker/bin/dumper.pl
>
> Looking at the code, it seems to me that format_corename() is appending
> .pid, regardless if !core_uses_pid and corename[0]=='|', in which case
> it creates an invalid path for call_usermodehelper_pipe().
>
> Bug in the code, or bug in my methods?

What are you trying to dump? is it a multi-thread group app,
not a "simple" app? I ask because of this (I'm looking at 2.6.21-rc6)
<mm_users> reference (not that I know what that is):

if (!pid_in_pattern
&& (core_uses_pid || atomic_read(&current->mm->mm_users) != 1)) {
rc = snprintf(out_ptr, out_end - out_ptr,
".%d", current->tgid);
if (rc > out_end - out_ptr)
goto out;
out_ptr += rc;
}

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***