[ABRT PATCH 1/2] abrt-action-generate-core-backtrace: be a bit more verbose
by Denys Vlasenko
Like other backtrace generators, emit a message:
"Generating core_backtrace"
Signed-off-by: Denys Vlasenko <dvlasenk(a)redhat.com>
---
src/plugins/abrt-action-generate-core-backtrace.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/plugins/abrt-action-generate-core-backtrace.c b/src/plugins/abrt-action-generate-core-backtrace.c
index 303afc3..79c110a 100644
--- a/src/plugins/abrt-action-generate-core-backtrace.c
+++ b/src/plugins/abrt-action-generate-core-backtrace.c
@@ -125,6 +125,9 @@ int main(int argc, char **argv)
if (g_verbose > 1)
btp_debug_parser = true;
+ /* Let user know what's going on */
+ log(_("Generating core_backtrace"));
+
/* Get the executable name -- unstrip doesn't know it. */
struct dump_dir *dd = dd_opendir(dump_dir_name, DD_OPEN_READONLY);
if (!dd)
--
1.8.1.4
11 years
Stop filling [faf] duplicates
by Milan Crha
Hi there,
I just received nice bunch of [faf] reports with a bottom note:
> This ticket was created automatically. If this report is malformed or
> not helpful please let us know on crash-catcher(a)lists.fedorahosted.org
> so we can improve it.
and it's really not helpful at all. The only thing you do is to create
many automatic duplicate bug reports where the only correct thing is to
find where it was filled initially and mark it as a duplicate of that
bug. I'm not doing that, I'm simply closing all this crap as WontFix
with explanation:
> As far as this was filled already as a standard bug report it's just
> a waste of all involved time and a plain duplicate. I'm not going to
> search for exact duplicate number, because there are better things to
> do.
Please stop this immediately. Also, as was mentioned on the fedora's
devel list, without involve of the reporters, aka someone to whom I can
ask for more details, the bug is useless.
Bye,
Milan
11 years
[LIBREPORT PATCH 1/5] read and parse os_release on openSUSE
by Michal Toman
Signed-off-by: Michal Toman <mtoman(a)redhat.com>
---
src/lib/dump_dir.c | 10 +++++++++-
src/lib/parse_release.c | 28 ++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
index ac3b0e1..25f581a 100644
--- a/src/lib/dump_dir.c
+++ b/src/lib/dump_dir.c
@@ -640,7 +640,15 @@ void dd_create_basic_files(struct dump_dir *dd, uid_t uid, const char *chroot_di
release = load_text_file("/etc/system-release",
DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE | DD_OPEN_FOLLOW);
if (!release)
- release = load_text_file("/etc/redhat-release", DD_OPEN_FOLLOW);
+ release = load_text_file("/etc/redhat-release",
+ DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE | DD_OPEN_FOLLOW);
+ if (!release)
+ release = load_text_file("/etc/SuSE-release", DD_OPEN_FOLLOW);
+
+ char *newline = strchr(release, '\n');
+ if (newline)
+ *newline = '\0';
+
dd_save_text(dd, FILENAME_OS_RELEASE, release);
if (chroot_dir)
{
diff --git a/src/lib/parse_release.c b/src/lib/parse_release.c
index 2535fb6..af1d69f 100644
--- a/src/lib/parse_release.c
+++ b/src/lib/parse_release.c
@@ -47,6 +47,7 @@ enum {
// caller is reposible for freeing *product* and *version*
static void parse_release(const char *release, char** product, char** version, int flags)
{
+ /* Fedora has a single non-numeric release - Rawhide */
if (strstr(release, "Rawhide"))
{
*product = xstrdup("Fedora");
@@ -55,6 +56,29 @@ static void parse_release(const char *release, char** product, char** version, i
return;
}
+ /* openSUSE has two non-numeric releases - Factory and Tumbleweed
+ None of them is unfortunately identified in any of /etc/SuSE-brand,
+ /etc/SuSE-release or /etc/os-release. Keep this piece of code commented
+ just not to forget about that. */
+
+ /*
+ if (strstr(release, "Factory"))
+ {
+ *product = xstrdup("openSUSE");
+ *version = xstrdup("Factory");
+ VERB3 log("%s: version:'%s' product:'%s'", __func__, *version, *product);
+ return;
+ }
+
+ if (strstr(release, "Tumbleweed"))
+ {
+ *product = xstrdup("openSUSE");
+ *version = xstrdup("Tumbleweed");
+ VERB3 log("%s: version:'%s' product:'%s'", __func__, *version, *product);
+ return;
+ }
+ */
+
bool it_is_rhel = false;
struct strbuf *buf_product = strbuf_new();
@@ -67,6 +91,10 @@ static void parse_release(const char *release, char** product, char** version, i
strbuf_append_str(buf_product, "Red Hat Enterprise Linux");
it_is_rhel = true;
}
+ else if (strstr(release, "openSUSE"))
+ {
+ strbuf_append_str(buf_product, "openSUSE");
+ }
else
{
/* TODO: add logic for parsing other distros' names here */
--
1.8.1.4
11 years
[LIBREPORT PATCH 1/2 v3] wizard: remove a bunch of evd->foo members
by Denys Vlasenko
No change in logic
v3: rediffed on top of current git
Signed-off-by: Denys Vlasenko <dvlasenk(a)redhat.com>
---
src/gui-wizard-gtk/wizard.c | 40 +++++++++++++---------------------------
1 file changed, 13 insertions(+), 27 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index dcab716..a715267 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1348,9 +1348,6 @@ struct analyze_event_data
struct run_event_state *run_state;
char *event_name;
GList *env_list;
- GtkWidget *page_widget;
- GtkLabel *status_label;
- GtkTextView *tv_log;
const char *success_msg;
const char *error_msg;
GIOChannel *channel;
@@ -1545,7 +1542,7 @@ static void update_command_run_log(const char* message, struct analyze_event_dat
/* Don't append new line behind single dot */
const char *log_msg = it_is_a_dot ? message : xasprintf("%s\n", message);
- append_to_textview(evd->tv_log, log_msg);
+ append_to_textview(g_tv_event_log, log_msg);
save_to_event_log(evd, log_msg);
/* Because of single dot, see lines above */
@@ -1753,7 +1750,7 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
/* If program failed, emit *error* line */
evd->event_log_state = LOGSTATE_ERRLINE;
}
- append_to_textview(evd->tv_log, msg);
+ append_to_textview(g_tv_event_log, msg);
save_to_event_log(evd, msg);
free(msg);
}
@@ -1798,7 +1795,7 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
|| spawn_next_command_in_evd(evd) < 0
) {
VERB1 log("done running event on '%s': %d", g_dump_dir_name, retval);
- append_to_textview(evd->tv_log, "\n");
+ append_to_textview(g_tv_event_log, "\n");
/* Free child output buffer */
strbuf_free(cmd_output);
@@ -1823,23 +1820,23 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
{
/* 256 means NOT_REPORTABLE */
if (retval == 256)
- cancel_processing(evd->status_label, evd->success_msg);
+ cancel_processing(g_lbl_event_log, evd->success_msg);
else
{
/* We use SIGTERM to stop event processing on user's request.
* So SIGTERM is not a failure.
*/
if (retval == EXIT_CANCEL_BY_USER || WTERMSIG(run_state->process_status) == SIGTERM)
- cancel_processing(evd->status_label, /* default message */ NULL);
+ cancel_processing(g_lbl_event_log, /* default message */ NULL);
else
{
- cancel_processing(evd->status_label, evd->error_msg);
+ cancel_processing(g_lbl_event_log, evd->error_msg);
on_failed_event(evd->event_name);
}
}
}
else
- gtk_label_set_text(evd->status_label, evd->success_msg);
+ gtk_label_set_text(g_lbl_event_log, evd->success_msg);
/*g_source_remove(evd->event_source_id);*/
close(evd->fd);
@@ -1875,10 +1872,6 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
}
static void start_event_run(const char *event_name,
- GtkWidget *page,
- GtkTextView *tv_log,
- GtkLabel *status_label,
- const char *start_msg,
const char *error_msg,
const char *success_msg
) {
@@ -1902,11 +1895,11 @@ static void start_event_run(const char *event_name,
//TODO: better msg?
char *msg = xasprintf(_("No processing for event '%s' is defined"), event_name);
if (g_expert_mode)
- gtk_label_set_text(status_label, msg);
+ gtk_label_set_text(g_lbl_event_log, msg);
else
{
- gtk_label_set_text(status_label, error_msg);
- append_to_textview(tv_log, msg);
+ gtk_label_set_text(g_lbl_event_log, error_msg);
+ append_to_textview(g_tv_event_log, msg);
terminate_event_chain();
}
free(msg);
@@ -1921,7 +1914,7 @@ static void start_event_run(const char *event_name,
if (!g_expert_mode)
{
char *msg = xasprintf(_("Processing interrupted: can't continue without writable directory."));
- cancel_processing(status_label, msg);
+ cancel_processing(g_lbl_event_log, msg);
free(msg);
}
return; /* user refused to steal, or write error, etc... */
@@ -1944,9 +1937,6 @@ static void start_event_run(const char *event_name,
evd->run_state = state;
evd->event_name = xstrdup(event_name);
evd->env_list = env_list;
- evd->page_widget = page;
- evd->status_label = status_label;
- evd->tv_log = tv_log;
evd->error_msg = error_msg;
evd->success_msg = success_msg;
evd->event_log = strbuf_new();
@@ -1964,10 +1954,10 @@ static void start_event_run(const char *event_name,
evd
);
- gtk_label_set_text(status_label, start_msg);
+ gtk_label_set_text(g_lbl_event_log, _("Processing..."));
VERB1 log("running event '%s' on '%s'", event_name, g_dump_dir_name);
char *msg = xasprintf("--- Running %s ---\n", event_name);
- append_to_textview(evd->tv_log, msg);
+ append_to_textview(g_tv_event_log, msg);
free(msg);
/* don't bother testing if they are visible, this is faster */
@@ -2286,10 +2276,6 @@ static gint select_next_page_no(gint current_page_no, gpointer data);
static void setup_and_start_event_run(const char *event_name)
{
start_event_run(event_name,
- pages[PAGENO_EVENT_PROGRESS].page_widget,
- g_tv_event_log,
- g_lbl_event_log,
- _("Processing..."),
g_expert_mode ? _("Processing failed. You can try another operation if available.")
: _("Processing failed."),
/* this event is the last event from the chain */
--
1.8.1.4
11 years
[SATYR PATCH 1/3] Fix potentially undefined return value
by Martin Milata
Signed-off-by: Martin Milata <mmilata(a)redhat.com>
---
lib/core_unwind_libunwind.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/core_unwind_libunwind.c b/lib/core_unwind_libunwind.c
index 1c014a9..06734a3 100644
--- a/lib/core_unwind_libunwind.c
+++ b/lib/core_unwind_libunwind.c
@@ -434,7 +434,7 @@ sr_parse_coredump(const char *core_file,
const char *exe_file,
char **error_msg)
{
- struct sr_core_thread *trace = NULL;
+ struct sr_core_stacktrace *stacktrace = NULL;
/* Initialize error_msg to 'no error'. */
if (error_msg)
@@ -472,12 +472,12 @@ sr_parse_coredump(const char *core_file,
}
}
- struct sr_core_stacktrace *stacktrace = sr_core_stacktrace_new();
+ stacktrace = sr_core_stacktrace_new();
int tnum, nthreads = _UCD_get_num_threads(ui);
for (tnum = 0; tnum < nthreads; ++tnum)
{
- trace = unwind_thread(ui, as, ch->dwfl, tnum, error_msg);
+ struct sr_core_thread *trace = unwind_thread(ui, as, ch->dwfl, tnum, error_msg);
if (trace)
{
stacktrace->threads = sr_core_thread_append(stacktrace->threads, trace);
--
1.7.11.7
11 years
[SATYR PATCH] python/py_cluster.c: avoid integer wraparound
by Martin Milata
Related to rhbz#951541.
Signed-off-by: Martin Milata <mmilata(a)redhat.com>
---
python/py_cluster.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/py_cluster.c b/python/py_cluster.c
index f5924a1..52ccf7e 100644
--- a/python/py_cluster.c
+++ b/python/py_cluster.c
@@ -158,7 +158,7 @@ sr_py_dendrogram_get_merge_level(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "i", &i))
return NULL;
- if (i < 0 || i + 1 >= this->dendrogram->size)
+ if (i < 0 || i > this->dendrogram->size)
{
PyErr_SetString(PyExc_ValueError, "Merge level position out of range");
return NULL;
--
1.7.11.7
11 years
[SATYR PATCH 1/3] configure: enable silent make rules
by Martin Milata
Signed-off-by: Martin Milata <mmilata(a)redhat.com>
---
configure.ac | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/configure.ac b/configure.ac
index e84f8ad..ea6716f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,6 +3,12 @@ AC_CONFIG_HEADERS([lib/config.h])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AM_MAINTAINER_MODE
+# Support silent build rules. Disable by either passing --disable-silent-rules
+# to ./configure or passing V=1 to make
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
+# The 'yes' argument is undocumented but it is common knowledge that it works.
+AM_SILENT_RULES([yes])
+
AM_PROG_AR
AC_PROG_CC
AC_DISABLE_STATIC
--
1.7.11.7
11 years
wine crash reports
by Michael Cronenworth
Hello,
The reports for wine are not helpful.
1) The backtrace is garbage.
2) Windows binaries can induce crashes that look like Wine crashes.
3) The version of Wine that was reported is not even close to what is
currently in "updates".
The 8 bugs that were opened are going to be "CLOSED - INSUFFICIENT_DATA"
unless there is something better to look at.
Thanks,
Michael
11 years
[BTPARSER PATCH] python/dendrogram.c: avoid integer wraparound
by Martin Milata
Closes rhbz#951541.
Signed-off-by: Martin Milata <mmilata(a)redhat.com>
---
python/dendrogram.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/dendrogram.c b/python/dendrogram.c
index 434db58..684b5f5 100644
--- a/python/dendrogram.c
+++ b/python/dendrogram.c
@@ -127,7 +127,7 @@ PyObject *p_btp_dendrogram_get_merge_level(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "i", &i))
return NULL;
- if (i < 0 || i + 1 >= this->dendrogram->size)
+ if (i < 0 || i > this->dendrogram->size)
{
PyErr_SetString(PyExc_ValueError, "Merge level position out of range");
return NULL;
--
1.7.11.7
11 years