Signed-off-by: Jakub Filak jfilak@redhat.com --- abrt.spec.in | 1 + src/plugins/Makefile.am | 6 ++++-- src/plugins/abrt-action-analyze-crash | 15 +++++++++++++++ src/plugins/ccpp_retrace_event.conf | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 src/plugins/abrt-action-analyze-crash
diff --git a/abrt.spec.in b/abrt.spec.in index a1c00ba..93689f3 100644 --- a/abrt.spec.in +++ b/abrt.spec.in @@ -535,6 +535,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_bindir}/abrt-action-generate-core-backtrace %{_bindir}/abrt-action-analyze-backtrace %{_bindir}/abrt-action-list-dsos +%{_bindir}/abrt-action-analyze-crash %{_bindir}/abrt-dedup-client %{_sbindir}/abrt-install-ccpp-hook %{_sysconfdir}/libreport/events.d/ccpp_event.conf diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am index 675b1a7..15223ef 100644 --- a/src/plugins/Makefile.am +++ b/src/plugins/Makefile.am @@ -4,7 +4,8 @@ bin_SCRIPTS = \ abrt-action-install-debuginfo \ abrt-action-analyze-core \ abrt-action-analyze-vmcore \ - abrt-action-list-dsos + abrt-action-list-dsos \ + abrt-action-analyze-crash
bin_PROGRAMS = \ abrt-watch-log \ @@ -73,7 +74,8 @@ EXTRA_DIST = \ analyze_VMcore.xml.in \ abrt-action-analyze-vmcore \ https-utils.h \ - post_report.xml.in + post_report.xml.in \ + abrt-action-analyze-crash
abrt_watch_log_SOURCES = \ abrt-watch-log.c diff --git a/src/plugins/abrt-action-analyze-crash b/src/plugins/abrt-action-analyze-crash new file mode 100755 index 0000000..1acca6b --- /dev/null +++ b/src/plugins/abrt-action-analyze-crash @@ -0,0 +1,15 @@ +#!/bin/sh +# For event handlers +# Tries to retrace over retrace server +# If retrace server fails asks user for an approval to run retracing locally + +abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 || ( + echo `gettext "ASK_YES_NO Do you want to perform local analysis?"` && read answ + if test x"$answ" == x"yes"; then + abrt-action-analyze-core --core=coredump -o build_ids && + /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 && + abrt-action-generate-backtrace + else + exit 1 + fi +) diff --git a/src/plugins/ccpp_retrace_event.conf b/src/plugins/ccpp_retrace_event.conf index 60e53d7..3cd5450 100644 --- a/src/plugins/ccpp_retrace_event.conf +++ b/src/plugins/ccpp_retrace_event.conf @@ -1,5 +1,5 @@ EVENT=analyze_RetraceServer analyzer=CCpp - abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 && + abrt-action-analyze-crash && abrt-action-analyze-backtrace && ( bug_id=$(reporter-bugzilla -h `cat duphash`) &&
On 09/04/2012 03:48 PM, Jakub Filak wrote:
Signed-off-by: Jakub Filak jfilak@redhat.com
abrt.spec.in | 1 + src/plugins/Makefile.am | 6 ++++-- src/plugins/abrt-action-analyze-crash | 15 +++++++++++++++ src/plugins/ccpp_retrace_event.conf | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 src/plugins/abrt-action-analyze-crash
diff --git a/abrt.spec.in b/abrt.spec.in index a1c00ba..93689f3 100644 --- a/abrt.spec.in +++ b/abrt.spec.in @@ -535,6 +535,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_bindir}/abrt-action-generate-core-backtrace %{_bindir}/abrt-action-analyze-backtrace %{_bindir}/abrt-action-list-dsos +%{_bindir}/abrt-action-analyze-crash %{_bindir}/abrt-dedup-client %{_sbindir}/abrt-install-ccpp-hook %{_sysconfdir}/libreport/events.d/ccpp_event.conf diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am index 675b1a7..15223ef 100644 --- a/src/plugins/Makefile.am +++ b/src/plugins/Makefile.am @@ -4,7 +4,8 @@ bin_SCRIPTS = \ abrt-action-install-debuginfo \ abrt-action-analyze-core \ abrt-action-analyze-vmcore \
- abrt-action-list-dsos
- abrt-action-list-dsos \
- abrt-action-analyze-crash
bin_PROGRAMS = \ abrt-watch-log \ @@ -73,7 +74,8 @@ EXTRA_DIST = \ analyze_VMcore.xml.in \ abrt-action-analyze-vmcore \ https-utils.h \
- post_report.xml.in
- post_report.xml.in \
- abrt-action-analyze-crash
abrt_watch_log_SOURCES = \ abrt-watch-log.c diff --git a/src/plugins/abrt-action-analyze-crash b/src/plugins/abrt-action-analyze-crash new file mode 100755 index 0000000..1acca6b --- /dev/null +++ b/src/plugins/abrt-action-analyze-crash @@ -0,0 +1,15 @@ +#!/bin/sh +# For event handlers +# Tries to retrace over retrace server +# If retrace server fails asks user for an approval to run retracing locally
+abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 || (
- echo `gettext "ASK_YES_NO Do you want to perform local analysis?"` && read answ
- if test x"$answ" == x"yes"; then
'==' is a bashism. Better to use '='.
abrt-action-analyze-core --core=coredump -o build_ids &&
/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 &&
abrt-action-generate-backtrace
- else
exit 1
- fi
+) diff --git a/src/plugins/ccpp_retrace_event.conf b/src/plugins/ccpp_retrace_event.conf index 60e53d7..3cd5450 100644 --- a/src/plugins/ccpp_retrace_event.conf +++ b/src/plugins/ccpp_retrace_event.conf @@ -1,5 +1,5 @@ EVENT=analyze_RetraceServer analyzer=CCpp
abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 &&
abrt-action-analyze-crash && abrt-action-analyze-backtrace && ( bug_id=$(reporter-bugzilla -h `cat duphash`) &&
Adding yet another script feels... not very pleasant to me. I think just putting the script into the ccpp_retrace_event.conf is slightly better:
EVENT=analyze_RetraceServer analyzer=CCpp abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 if test $? != 0; then (*) echo "ASK_YES_NO" "`gettext "Do you want to perform analysis locally?"`" read answ test x"$answ" = x"yes" || exit 1 # # Similar/same as analyze_LocalGDB: # abrt-action-analyze-core --core=coredump -o build_ids && /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 && abrt-action-generate-backtrace fi && abrt-action-analyze-backtrace && ...
(*) 1. ASK_YES_NO should not be localized. 2. `cmd` needs to be quoted: "`cmd`", to prevent multi-word expansion. (In this case it is not strictly necessary, but a good practice.)
On 09/05/2012 12:25 PM, Denys Vlasenko wrote:
I think just putting the script into the ccpp_retrace_event.conf is slightly better:
Regarding "sensitive data warning". It can be in the event too, this allows us to go to local analyzing if used says "no":
EVENT=analyze_RetraceServer analyzer=CCpp
echo "ASK_YES_NO" "`gettext "Ok to upload core dump? (It may contain sensitive data)"`" read answ test x"$answ" = x"yes" &&
abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 if test $? != 0; then
# # We are here if user chose 'no', or if retrace client failed. #
echo "ASK_YES_NO" "`gettext "Do you want to perform analysis locally?"`" read answ test x"$answ" = x"yes" || exit 1 # # Similar/same as analyze_LocalGDB: # abrt-action-analyze-core --core=coredump -o build_ids && /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 && abrt-action-generate-backtrace fi && abrt-action-analyze-backtrace &&
...
On Wednesday 05 of September 2012 12:50:36 Denys Vlasenko wrote:
On 09/05/2012 12:25 PM, Denys Vlasenko wrote:
I think just putting the script into the ccpp_retrace_event.conf
is slightly better:
Regarding "sensitive data warning". It can be in the event too,
this allows us to go to local analyzing if used says "no":
EVENT=analyze_RetraceServer analyzer=CCpp
echo "ASK_YES_NO" "`gettext "Ok to upload core dump? (It may
contain sensitive data)"`" read answ test x"$answ" = x"yes" &&
Cool. I like it. How do we store user's answer in this case? Because we probably don't want to ask user in every run of reporting
abrt-retrace-client batch --dir "$DUMP_DIR" --status-delay 10 if test $? != 0; then
# # We are here if user chose 'no', or if retrace client failed.
#
echo "ASK_YES_NO" "`gettext "Do you want to perform analysis locally?"`" read answ test x"$answ" = x"yes" || exit 1 # # Similar/same as analyze_LocalGDB: # abrt-action-analyze-core --core=coredump -o build_ids && /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache --size_mb=4096 && abrt-action-generate-backtrace fi && abrt-action-analyze-backtrace &&
...
crash-catcher@lists.fedorahosted.org