Re: [Automatic Bug Reporting Tool - ABRT] #597: faf: tags are not static
by fedora-badges
#597: faf: tags are not static
---------------------+---------------------------------
Reporter: mtoman | Owner: mtoman
Type: defect | Status: assigned
Priority: major | Milestone: ABRT_server_release
Component: faf | Version:
Resolution: | Keywords:
Blocked By: | Blocking:
---------------------+---------------------------------
Changes (by mtoman):
* owner: crash-catcher@… => mtoman
* status: new => assigned
* priority: minor => major
Comment:
Due to recent changes I found two use-cases:
1) {{{ faf-refreshrepo }}} creates repos depending on tags. As all of our
packages are just tagged updates-testing, this will contain all packages,
while other repos will be empty.
2) We need to create some cleanup script that only keeps relevant
packages. Many of our packages are currently untagged in koji.
--
Ticket URL: <https://fedorahosted.org/abrt/ticket/597#comment:3>
Automatic Bug Reporting Tool - ABRT <http://fedorahoted.org/abrt/>
Automatic bug reporting tool
11 years, 3 months
[Automatic Bug Reporting Tool - ABRT] #819: abrt server support for rhel7
by fedora-badges
#819: abrt server support for rhel7
-------------------------------+------------------------------
Reporter: jmoskovc | Owner: crash-catcher@…
Type: defect | Status: new
Priority: major | Milestone: RHEL7
Component: rhtsupport-plugin | Version:
Keywords: | Blocked By:
Blocking: |
-------------------------------+------------------------------
We don't want customers to use ureport in RHEL7 directly. It has to be
sent by the rht-support plugin to the portal and portal will rely it to
the internal instance of ABRT server.
--
Ticket URL: <https://fedorahosted.org/abrt/ticket/819>
Automatic Bug Reporting Tool - ABRT <http://fedorahoted.org/abrt/>
Automatic bug reporting tool
11 years, 3 months
[LIBREPORT PATCH] make the dependency on recordmydesktop soft v2 - related to rhbz#891512
by Jiri Moskovcak
- now the logic is in the python code, so wizard doesn't have to know
about whats behind the screencasting
---
src/gui-wizard-gtk/wizard.c | 49 +++++++++++++++++++++++++++++++++++++++------
src/plugins/abrt-screencast | 10 +++++++++
2 files changed, 53 insertions(+), 6 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index d790f7d..52aff11 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -3075,6 +3075,30 @@ static void on_btn_startcast(GtkWidget *btn, gpointer user_data)
gtk_widget_show(GTK_WIDGET(g_wnd_assistant));
}
+bool is_screencast_available()
+{
+ const char *args[3];
+ args[0] = (char *) LIBEXEC_DIR"/abrt-screencast";
+ args[1] = "is-available";
+ args[2] = NULL;
+
+ pid_t castapp = 0;
+ castapp = fork_execv_on_steroids(
+ EXECFLG_QUIET,
+ (char **)args,
+ NULL,
+ /*env_vec:*/ NULL,
+ /*dir:*/ NULL,
+ /*uid (ignored):*/ 0
+ );
+
+ int status;
+ safe_waitpid(castapp, &status, 0);
+
+ /* 0 means that it's available */
+ return status == 0;
+}
+
void create_assistant(bool expert_mode)
{
g_loaded_texts = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
@@ -3164,12 +3188,25 @@ void create_assistant(bool expert_mode)
g_signal_connect(g_btn_add_file, "clicked", G_CALLBACK(on_btn_add_file), NULL);
- /* we need to override the activate-link handler, because we use
- * the link button instead of normal button and if wouldn't override it
- * gtk would try to run it's defualt action and open the associated URI
- * but since the URI is empty it would complain about it...
- */
- g_signal_connect(g_btn_startcast, "activate-link", G_CALLBACK(on_btn_startcast), NULL);
+ if (is_screencast_available()) {
+ /* we need to override the activate-link handler, because we use
+ * the link button instead of normal button and if we wouldn't override it
+ * gtk would try to run it's defualt action and open the associated URI
+ * but since the URI is empty it would complain about it...
+ */
+ g_signal_connect(g_btn_startcast, "activate-link", G_CALLBACK(on_btn_startcast), NULL);
+ }
+ else {
+ gtk_widget_set_sensitive(GTK_WIDGET(g_btn_startcast), false);
+ gtk_widget_set_tooltip_markup(GTK_WIDGET(g_btn_startcast),
+ _("In order to enable the built-in screencasting "
+ "functionality the package recordmydesktop has to be installed. "
+ "Please run the following command if you want to install it."
+ "\n\n"
+ "<b>su -c \"yum install recordmydesktop\"</b>"
+ ));
+ }
+
g_signal_connect(g_search_entry_bt, "changed", G_CALLBACK(search_timeout), NULL);
diff --git a/src/plugins/abrt-screencast b/src/plugins/abrt-screencast
index 0511a65..bf3746a 100644
--- a/src/plugins/abrt-screencast
+++ b/src/plugins/abrt-screencast
@@ -235,9 +235,19 @@ class AbrtScreecastWindow(Gtk.Window):
# pylint: disable=E1101
self.present() #move it on top or do some magic to drag the attention
+def is_available():
+ for path in os.environ["PATH"].split(':'):
+ if os.path.exists(path+"/recordmydesktop"):
+ return True
+
+ return False
if __name__ == "__main__":
output_file = None
+ if sys.argv[1] == "is-available":
+ exitcode = 0 if is_available() else 1
+ sys.exit(exitcode)
+
try:
output_file = sys.argv[1]
except IndexError, ex:
--
1.8.0.1
11 years, 3 months
[ABRT PATCH] koops: catch all x86 TRAPs
by Jakub Filak
- closes rhbz#892230
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/lib/kernel.c | 145 ++++++++++++++++++++++++++++---------------------------
1 file changed, 74 insertions(+), 71 deletions(-)
diff --git a/src/lib/kernel.c b/src/lib/kernel.c
index 6b13362..32d05a0 100644
--- a/src/lib/kernel.c
+++ b/src/lib/kernel.c
@@ -74,25 +74,58 @@ static void record_oops(GList **oops_list, struct line_info* lines_info, int oop
VERB3 if (rv == 0) log("Dropped oops: too short");
}
+/* In some comparisons, we skip 1st letter, to avoid dealing with
+ * changes in capitalization in kernel. For example, I see that
+ * current kernel git (at 2011-01-01) has both "kernel BUG at ..."
+ * and "Kernel BUG at ..." messages, and I don't want to change
+ * the code below whenever kernel is changed to use "K" (or "k")
+ * uniformly.
+ */
+static const char *const s_suspicious_strings[] = {
+ "BUG:",
+ "WARNING: at",
+ "INFO: possible recursive locking detected",
+ /*k*/"ernel BUG at",
+ "list_del corruption",
+ "list_add corruption",
+ "do_IRQ: stack overflow:",
+ /*n*/"ear stack overflow (cur:",
+ /*g*/"eneral protection fault",
+ /*u*/"nable to handle kernel",
+ /*d*/"ouble fault:",
+ "RTNL: assertion failed",
+ /*e*/"eek! page_mapcount(page) went negative!",
+ /*b*/"adness at",
+ "NETDEV WATCHDOG",
+ /*s*/"ysctl table check failed",
+ ": nobody cared",
+ "IRQ handler type mismatch",
+
+ /* X86 TRAPs */
+ "divide error:",
+ "bounds:",
+ "coprocessor segment overrun:",
+ "invalid TSS:",
+ "segment not present:",
+ "invalid opcode:",
+ "alignment check:",
+ "stack segment:",
+ "fpu exception:",
+ "simd exception:",
+ "iret exception:",
+
+ /* Termination */
+ NULL
+};
+
void koops_print_suspicious_strings(void)
{
- fputs(
- "BUG" "\n"
- "corruption" "\n"
- "stack overflow" "\n"
- "protection fault" "\n"
- "WARNING: at" "\n"
- /*u*/ "nable to handle" "\n"
- /*d*/ "ouble fault:" "\n"
- "RTNL: assertion failed" "\n"
- /*e*/ "eek! page_mapcount(page) went negative!" "\n"
- /*b*/ "adness at" "\n"
- "NETDEV WATCHDOG" "\n"
- /*s*/ "ysctl table check failed" "\n"
- "INFO: possible recursive locking detected" "\n"
- ": nobody cared" "\n"
- "IRQ handler type mismatch" "\n"
- , stdout);
+ const char *const *str = s_suspicious_strings;
+ while (*str)
+ {
+ puts(*str);
+ ++str;
+ }
}
void koops_extract_oopses(GList **oops_list, char *buffer, size_t buflen)
@@ -216,55 +249,16 @@ next_line:
if (oopsstart < 0)
{
/* Find start-of-oops markers */
- /* In some comparisons, we skip 1st letter, to avoid dealing with
- * changes in capitalization in kernel. For example, I see that
- * current kernel git (at 2011-01-01) has both "kernel BUG at ..."
- * and "Kernel BUG at ..." messages, and I don't want to change
- * the code below whenever kernel is changed to use "K" (or "k")
- * uniformly.
- */
- if (strstr(curline, /*g*/ "eneral protection fault:"))
- oopsstart = i;
- else if (strstr(curline, "BUG:"))
- oopsstart = i;
- else if (strstr(curline, /*k*/ "ernel BUG at"))
- oopsstart = i;
- /* WARN_ON() generated message */
- else if (strstr(curline, "WARNING: at "))
- oopsstart = i;
- else if (strstr(curline, /*u*/ "nable to handle kernel"))
- oopsstart = i;
- else if (strstr(curline, /*d*/ "ouble fault:"))
- oopsstart = i;
- else if (strstr(curline, "do_IRQ: stack overflow:"))
- oopsstart = i;
- else if (strstr(curline, "RTNL: assertion failed"))
- oopsstart = i;
- else if (strstr(curline, /*e*/ "eek! page_mapcount(page) went negative!"))
- oopsstart = i;
- else if (strstr(curline, /*n*/ "ear stack overflow (cur:"))
- oopsstart = i;
- else if (strstr(curline, /*b*/ "adness at"))
- oopsstart = i;
- else if (strstr(curline, "NETDEV WATCHDOG"))
- oopsstart = i;
- else if (strstr(curline, /*s*/ "ysctl table check failed"))
- oopsstart = i;
- else if (strstr(curline, "INFO: possible recursive locking detected"))
- oopsstart = i;
- // Not needed: "--[ cut here ]--" is always followed
- // by "Badness at", "kernel BUG at", or "WARNING: at" string
- //else if (strstr(curline, "------------[ cut here ]------------"))
- // oopsstart = i;
- else if (strstr(curline, "list_del corruption"))
- oopsstart = i;
- else if (strstr(curline, "list_add corruption"))
- oopsstart = i;
- /* "irq NN: nobody cared..." */
- else if (strstr(curline, ": nobody cared"))
- oopsstart = i;
- else if (strstr(curline, "IRQ handler type mismatch"))
- oopsstart = i;
+ const char *const *str = s_suspicious_strings;
+ while (*str)
+ {
+ if (strstr(curline, *str))
+ {
+ oopsstart = i;
+ break;
+ }
+ ++str;
+ }
if (oopsstart >= 0)
{
@@ -335,14 +329,23 @@ next_line:
oopsend = i-1;
else if (strstr(curline, "Instruction dump:"))
oopsend = i;
- /* if a new oops starts, this one has ended */
- else if (strstr(curline, "WARNING: at ") && oopsstart != i) /* WARN_ON() generated message */
- oopsend = i-1;
- else if (strstr(curline, "Unable to handle") && oopsstart != i)
- oopsend = i-1;
/* kernel end-of-oops marker (not including marker itself) */
else if (strstr(curline, "---[ end trace"))
oopsend = i-1;
+ else
+ {
+ /* if a new oops starts, this one has ended */
+ const char *const *str = s_suspicious_strings;
+ while (*str)
+ {
+ if (strstr(curline, *str))
+ {
+ oopsend = i-1;
+ break;
+ }
+ ++str;
+ }
+ }
if (oopsend <= i)
{
--
1.7.11.7
11 years, 3 months
[Automatic Bug Reporting Tool - ABRT] #917: anonymous reporting only
by fedora-badges
#917: anonymous reporting only
-------------------------+--------------------------------------
Reporter: jfilak | Owner: crash-catcher@…
Type: enhancement | Status: new
Priority: major | Milestone: Gnome_Shell_integration
Component: abrt | Version:
Keywords: | Blocked By:
Blocking: |
-------------------------+--------------------------------------
The current implementation of abrt-applet runs an event stored in
autoreporting option after user clicks on the 'Report' button. If the
reported problem is unknown, abrt-applet runs report-gui event, else if
the problem is known, applet shows notification bubble.
With enabled anonymous reporting abrt-applet shows the notification bubble
in all cases.
With enabled anonymous reporting ABRT doesn't care about errors, it goes
headless and shows notification bubble at the end.
Workflow with enabled anonymous reporting and disabled autoreporting:
- 0. Problem detected
- 1. Show notification bubble with Ignore and Report buttons
- 2. Report button clicked
- 3. Autoreporting event run
- 4. Regardless of errors show notification bubble without any button
with the following message:
"Problem in $package has been reported"
Workflow with enabled anonymous reporting and enabled autoreporting:
- 0. Problem detected
- 1. Autoreporting event run
- 2. Regardless of errors shows notification bubble without any button
with the following message:
"Problem in $package has been reported"
--
Ticket URL: <https://fedorahosted.org/abrt/ticket/917>
Automatic Bug Reporting Tool - ABRT <http://fedorahoted.org/abrt/>
Automatic bug reporting tool
11 years, 3 months