Red Hat Bugzilla – Bug 614486
kernel.core_pattern in /etc/sysctl.conf not getting set at boot
Last modified: 2014-06-18 04:47:15 EDT
The value in /etc/sysctl.conf for kernel.core_pattern is not being set in the system /proc filesystem on boot. If you manually run sysctl -p it does get set. In addition, there are errors messages being generated by default values in /etc/sysctl.conf:
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
abrt is the only thing by default that sets core_pattern - assigning there. The *tables errors are unfortunate due to the order of network module loading, and can't be avoided; it's why all scripted invocations of it use '-e'.
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release. It has
been denied for the current Red Hat Enterprise Linux release.
** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **
Created bug 618602 - kernel's parameter length limit is too small to fix this bug.
Created attachment 434661 [details]
Since kernel-side fix (see bug 618602) is planned for inclusion in RHEL6 update,
we are ready to fix it on abrt side too.
Testing the fix for bug 614486 with kernel-2.6.32-83.el6.
I set /proc/sys/kernel/core_pattern to:
echo really_long_long_long_long_long_long_long_long_corename_s%s_c%c_p%p_u%u_g%g_t%t_h%h_e%e >/proc/sys/kernel/core_pattern
When abrt starts, it sets core_pattern to:
|/usr/libexec/abrt-hook-ccpp /var/spool/abrt %s %c %p %u %g %t %h %e 7265616c6c795f6c6f6e675f6c6f6e675f6c6f6e675f6c6f6e675f6c6f6e675f6c6f6e675f6c6f6e675f6c6f6e675f636f72656e616d655f7325735f6325635f7025705f7525755f6725675f7425745f6825685f652565
The long hex string is a hex-encoded "really_long_long_long_long_long_long_long_long_corename_s%s_c%c_p%p_u%u_g%g_t%t_h%h_e%e"
But only "|/usr/libexec/abrt-hook-ccpp /var/spool/abrt %s %c %p %u %g %t %h %e 7265616c6c795f6c6f6e675f6c6f6e675f6c6f6e675f6c6f6e675f6c6f" makes it (127 chars).
As a result, abrt-hook-ccpp saves coredump under truncated name "really_long_long_long_long_lo"
I'd say that for most real-world cases it will work, but raising the 128 char limit would be appreciated.
Fix is pushed to git, abrt_11x branch
Created attachment 472076 [details]
Updated patch (this one went to git)
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.