Closes #662
Signed-off-by: Jakub Filak jfilak@redhat.com --- src/hooks/abrt-harvest-vmcore.in | 8 ++++++++ src/plugins/abrt-action-analyze-vmcore.in | 24 +----------------------- src/plugins/vmcore_event.conf | 14 ++++++++++++-- 3 files changed, 21 insertions(+), 25 deletions(-)
diff --git a/src/hooks/abrt-harvest-vmcore.in b/src/hooks/abrt-harvest-vmcore.in index 59bad31..99022d9 100644 --- a/src/hooks/abrt-harvest-vmcore.in +++ b/src/hooks/abrt-harvest-vmcore.in @@ -62,11 +62,19 @@ for d in *; do printf 'vmcore' >"$dst.new/type" printf 'kernel' >"$dst.new/component" printf '%s' "`date '+%s'`" >"$dst.new/time" + printf '%s' "`uname -i`" >"$dst.new/architecture" + cp "$dst.new/time" "$dst.new/last_occurrence" printf '0' >"$dst.new/uid" # TODO: need to generate *real* UUID, # one which has a real chance of catching dups! # This one generates different hashes even for similar cores: printf '%s' "`sha1sum <"$dst.new/vmcore" | cut -d" " -f1`" >"$dst.new/uuid" + cp /etc/system-release "$dst.new/os_release" || { + cp /etc/redhat-release "$dst.new/os_release" || { + cp /etc/SuSE-release "$dst.new/os_release" + } + } + cp /etc/os-release "$dst.new/os_info"
chown -R 0:0 -- "$dst.new" chmod -R u+rwX,go-rwxst -- "$dst.new" diff --git a/src/plugins/abrt-action-analyze-vmcore.in b/src/plugins/abrt-action-analyze-vmcore.in index c78ba03..9475137 100644 --- a/src/plugins/abrt-action-analyze-vmcore.in +++ b/src/plugins/abrt-action-analyze-vmcore.in @@ -129,29 +129,7 @@ if __name__ == "__main__": out, err = crash.communicate(input="log") log_file.close() backtrace_file = open("backtrace", "w") - dump_oops = Popen(["abrt-dump-oops", "-o", "kernel_log"], stdout=backtrace_file, bufsize=-1) + dump_oops = Popen(["abrt-dump-oops", "-u", ".", "kernel_log"], stdout=backtrace_file, bufsize=-1) backtrace_file.close() - ret = dump_oops.wait() - if ret != RETURN_OK: - sys.exit(ret) - - ret = RETURN_FAILURE - # Save kernel version in 'kernel' file (FILENAME_KERNEL) - # The code below expects that abrt-dump-oops generates file in the following format: - # <empty line> - # Version: 3.8.5-201.fc18.x86_64 - # <oops data> - # <EOF> - with open("backtrace", "r") as backtrace_file: - for line in backtrace_file: - # Please excuse the magic constant 9 => len('Version: '). This construction is more readable for me. - if line[:9] == "Version: ": - with open("kernel", "w") as kernel_file: - kernel_file.write(line[9:].rstrip()) - ret = RETURN_OK # set OK only if it was successfully written - break # break the loop, we support only one oops per vmcore - if ret != RETURN_OK: - print _("Garbled abrt-dump-oops output format. Can't find kernel version."); - sys.exit(ret) diff --git a/src/plugins/vmcore_event.conf b/src/plugins/vmcore_event.conf index 0e15b7f..f6e260e 100644 --- a/src/plugins/vmcore_event.conf +++ b/src/plugins/vmcore_event.conf @@ -1,7 +1,9 @@ # analyze EVENT=analyze_VMcore analyzer=vmcore - abrt-action-analyze-vmcore - abrt-action-generate-core-backtrace + abrt-action-analyze-vmcore && + abrt-action-analyze-oops && + abrt-action-generate-core-backtrace && + abrt-action-save-kernel-data
# If you want behavior similar to one provided by kerneloops daemon # distributed by kerneloops.org - that is, if you want @@ -14,6 +16,14 @@ EVENT=analyze_VMcore analyzer=vmcore EVENT=report_Kerneloops analyzer=vmcore reporter-kerneloops
+EVENT=report_Bugzilla analyzer=vmcore + reporter-bugzilla -b \ + -F /etc/libreport/plugins/bugzilla_format_kernel.conf + +# Send micro report +EVENT=report_uReport analyzer=vmcore + /usr/libexec/abrt-action-ureport + EVENT=report-gui analyzer=vmcore report-gtk -e analyze_VMcore -e report_uReport -e "collect_*" -e report_Bugzilla -e post_report -- "$DUMP_DIR"