Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb524cb698 | ||
|
|
daaec7215b | ||
|
|
4428e79a4d | ||
|
|
fbe1bd1ca0 | ||
|
|
518bfe6a73 |
6 changed files with 85 additions and 85 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -74,3 +74,4 @@ abrt-1.1.13.tar.gz
|
||||||
/abrt-2.14.3.tar.gz
|
/abrt-2.14.3.tar.gz
|
||||||
/abrt-2.14.4.tar.gz
|
/abrt-2.14.4.tar.gz
|
||||||
/abrt-2.14.5.tar.gz
|
/abrt-2.14.5.tar.gz
|
||||||
|
/abrt-2.14.6.tar.gz
|
||||||
|
|
|
||||||
57
0001-Use-lazy-imports-in-abrt_exception_handler3.patch
Normal file
57
0001-Use-lazy-imports-in-abrt_exception_handler3.patch
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
From 4755f2171aa50a72d8ec03260c8cbc602263a6c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
||||||
|
Date: Fri, 24 Sep 2021 17:48:07 +0200
|
||||||
|
Subject: [PATCH] Use lazy imports in abrt_exception_handler3
|
||||||
|
|
||||||
|
The abrt_exception_handler3 module is always imported when Python starts,
|
||||||
|
but all the modules imported from it (except sys) are only used during crashes.
|
||||||
|
|
||||||
|
Especially the systemd.journal import is really expensive.
|
||||||
|
|
||||||
|
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2007664
|
||||||
|
---
|
||||||
|
src/hooks/abrt_exception_handler3.py.in | 9 +++++++--
|
||||||
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/hooks/abrt_exception_handler3.py.in b/src/hooks/abrt_exception_handler3.py.in
|
||||||
|
index 89e2474b..0bc548e0 100644
|
||||||
|
--- a/src/hooks/abrt_exception_handler3.py.in
|
||||||
|
+++ b/src/hooks/abrt_exception_handler3.py.in
|
||||||
|
@@ -20,13 +20,15 @@
|
||||||
|
Module for the ABRT exception handling hook
|
||||||
|
"""
|
||||||
|
|
||||||
|
+# Avoid importing anything but sys here, use lazy imports.
|
||||||
|
+# This file is imported on every Python startup,
|
||||||
|
+# all unused imports only increase the startup time and memory usage.
|
||||||
|
import sys
|
||||||
|
-import os
|
||||||
|
|
||||||
|
-from systemd import journal
|
||||||
|
|
||||||
|
def syslog(msg):
|
||||||
|
"""Log message to system logger (journal)"""
|
||||||
|
+ from systemd import journal
|
||||||
|
|
||||||
|
journal.send(msg)
|
||||||
|
|
||||||
|
@@ -68,6 +70,8 @@ def send(data):
|
||||||
|
|
||||||
|
|
||||||
|
def write_dump(tb_text, tb):
|
||||||
|
+ import os
|
||||||
|
+
|
||||||
|
if sys.argv[0][0] == "/":
|
||||||
|
executable = os.path.abspath(sys.argv[0])
|
||||||
|
else:
|
||||||
|
@@ -118,6 +122,7 @@ def handle_exception(etype, value, tb):
|
||||||
|
sys.excepthook = sys.__excepthook__ # pylint: disable-msg=E1101
|
||||||
|
|
||||||
|
import errno
|
||||||
|
+ import os
|
||||||
|
|
||||||
|
# Ignore Ctrl-C
|
||||||
|
# SystemExit rhbz#636913 -> this exception is not an error
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
From 1f2963b0611d4023957abe3c7391eab86256ba82 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Fabik <mfabik@redhat.com>
|
|
||||||
Date: Wed, 23 Sep 2020 16:55:25 +0200
|
|
||||||
Subject: [PATCH] hooklib: Don't g_autofree backtrace
|
|
||||||
|
|
||||||
The result of abrt_get_backtrace was being freed every time, even when
|
|
||||||
no error occured.
|
|
||||||
|
|
||||||
Resolves:
|
|
||||||
https://github.com/abrt/abrt/issues/1528
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1881745
|
|
||||||
Signed-off-by: Michal Fabik <mfabik@redhat.com>
|
|
||||||
---
|
|
||||||
src/lib/hooklib.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c
|
|
||||||
index dceaeb16..56b77bc3 100644
|
|
||||||
--- a/src/lib/hooklib.c
|
|
||||||
+++ b/src/lib/hooklib.c
|
|
||||||
@@ -348,7 +348,7 @@ char *abrt_get_backtrace(struct dump_dir *dd, unsigned timeout_sec, const char *
|
|
||||||
unsigned bt_depth = 1024;
|
|
||||||
const char *thread_apply_all = "thread apply all -ascending";
|
|
||||||
const char *full = "full ";
|
|
||||||
- g_autofree char *bt = NULL;
|
|
||||||
+ char *bt = NULL;
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
args[bt_cmd_index] = g_strdup_printf("%s backtrace %s%u", thread_apply_all, full, bt_depth);
|
|
||||||
@@ -367,6 +367,7 @@ char *abrt_get_backtrace(struct dump_dir *dd, unsigned timeout_sec, const char *
|
|
||||||
/* (NB: in fact, current impl. of exec_vp() never returns NULL) */
|
|
||||||
log_warning("Failed to generate backtrace, reducing depth to %u",
|
|
||||||
bt_depth);
|
|
||||||
+ free(bt);
|
|
||||||
|
|
||||||
/* Replace -ex disassemble (which disasms entire function $pc points to)
|
|
||||||
* to a version which analyzes limited, small patch of code around $pc.
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
From 5fa7b1f84fb02ca5dcf50d27f4bc14563c1918f6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Mat=C4=9Bj=20Grabovsk=C3=BD?= <mgrabovs@redhat.com>
|
|
||||||
Date: Mon, 12 Oct 2020 19:14:03 +0200
|
|
||||||
Subject: [PATCH] hooklib: Proper freeing of backtrace
|
|
||||||
|
|
||||||
Improper bracing caused the bt variable to be freed every time in every
|
|
||||||
iteration no matter what. This would then lead to an invalid (freed)
|
|
||||||
pointer being returned by the function.
|
|
||||||
|
|
||||||
The mistake was made in 1f2963b0 and reported by Jeff Law.
|
|
||||||
---
|
|
||||||
src/lib/hooklib.c | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c
|
|
||||||
index 56b77bc3..fc2a6a00 100644
|
|
||||||
--- a/src/lib/hooklib.c
|
|
||||||
+++ b/src/lib/hooklib.c
|
|
||||||
@@ -361,13 +361,17 @@ char *abrt_get_backtrace(struct dump_dir *dd, unsigned timeout_sec, const char *
|
|
||||||
|
|
||||||
bt_depth /= 2;
|
|
||||||
if (bt)
|
|
||||||
+ {
|
|
||||||
log_warning("Backtrace is too big (%u bytes), reducing depth to %u",
|
|
||||||
(unsigned)strlen(bt), bt_depth);
|
|
||||||
+ }
|
|
||||||
else
|
|
||||||
+ {
|
|
||||||
/* (NB: in fact, current impl. of exec_vp() never returns NULL) */
|
|
||||||
log_warning("Failed to generate backtrace, reducing depth to %u",
|
|
||||||
bt_depth);
|
|
||||||
- free(bt);
|
|
||||||
+ g_clear_pointer(&bt, free);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/* Replace -ex disassemble (which disasms entire function $pc points to)
|
|
||||||
* to a version which analyzes limited, small patch of code around $pc.
|
|
||||||
--
|
|
||||||
2.26.2
|
|
||||||
|
|
||||||
30
abrt.spec
30
abrt.spec
|
|
@ -48,11 +48,11 @@
|
||||||
|
|
||||||
Summary: Automatic bug detection and reporting tool
|
Summary: Automatic bug detection and reporting tool
|
||||||
Name: abrt
|
Name: abrt
|
||||||
Version: 2.14.5
|
Version: 2.14.6
|
||||||
Release: 2%{?dist}
|
Release: 4%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: https://abrt.readthedocs.org/
|
URL: https://abrt.readthedocs.org/
|
||||||
Source: https://github.com/abrt/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz
|
Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
BuildRequires: git-core
|
BuildRequires: git-core
|
||||||
BuildRequires: %{dbus_devel}
|
BuildRequires: %{dbus_devel}
|
||||||
|
|
@ -107,6 +107,8 @@ Requires: libreport-plugin-ureport
|
||||||
%if 0%{?fedora}
|
%if 0%{?fedora}
|
||||||
Requires: libreport-plugin-systemd-journal
|
Requires: libreport-plugin-systemd-journal
|
||||||
%endif
|
%endif
|
||||||
|
# to fix upgrade path abrt-plugin-sosreport was removed in 2.14.5 version.
|
||||||
|
Obsoletes: abrt-plugin-sosreport < 2.14.5
|
||||||
|
|
||||||
#gui
|
#gui
|
||||||
BuildRequires: libreport-gtk-devel >= %{libreport_ver}
|
BuildRequires: libreport-gtk-devel >= %{libreport_ver}
|
||||||
|
|
@ -134,6 +136,8 @@ BuildRequires: python3-libreport
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Patch0: 0001-Use-lazy-imports-in-abrt_exception_handler3.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
%{name} is a tool to help users to detect defects in applications and
|
%{name} is a tool to help users to detect defects in applications and
|
||||||
to create a bug report with all information needed by maintainer to fix it.
|
to create a bug report with all information needed by maintainer to fix it.
|
||||||
|
|
@ -257,6 +261,7 @@ Requires: kexec-tools
|
||||||
%if %{with python3}
|
%if %{with python3}
|
||||||
Requires: python3-abrt
|
Requires: python3-abrt
|
||||||
Requires: python3-augeas
|
Requires: python3-augeas
|
||||||
|
Requires: python3-systemd
|
||||||
%endif
|
%endif
|
||||||
Requires: util-linux
|
Requires: util-linux
|
||||||
|
|
||||||
|
|
@ -470,7 +475,7 @@ to the shell
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf
|
./autogen.sh
|
||||||
|
|
||||||
%define default_dump_dir %{_localstatedir}/spool/abrt
|
%define default_dump_dir %{_localstatedir}/spool/abrt
|
||||||
|
|
||||||
|
|
@ -998,6 +1003,23 @@ killall abrt-dbus >/dev/null 2>&1 || :
|
||||||
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
|
%config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 27 2021 Matěj Grabovský <mgrabovs@redhat.com> - 2.14.6-4
|
||||||
|
- Use lazy import in the Python exception handler to avoid slowdown in Python
|
||||||
|
startup (rhbz#2007664)
|
||||||
|
|
||||||
|
* Tue May 25 2021 Michal Fabik <mfabik@redhat.com> - 2.14.6-1
|
||||||
|
- Add support of master + subkeys gpg.
|
||||||
|
- hooks: Remove stale workaround for a fixed bug
|
||||||
|
- cli: Gracefully handle disappearance of problem directory
|
||||||
|
- libs: Add version info script
|
||||||
|
- retrace-client: Output task ID to console in batch mode
|
||||||
|
- retrace-client: Separate commands by commas
|
||||||
|
- Doc: Improve man page for abrt-action-analyze-vulnerability
|
||||||
|
- Various memory management and other fixes
|
||||||
|
|
||||||
|
* Fri Apr 30 2021 Sérgio Basto <sergio@serjux.com> - 2.14.5-3
|
||||||
|
- Obsoletes abrt-plugin-sosreport, to fix upgrade path
|
||||||
|
|
||||||
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.5-2
|
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.5-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
|
|
||||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
||||||
SHA512 (abrt-2.14.5.tar.gz) = ceb55d1e31966fe795bea19f96b1f0af2d4e97c3a7da29858f222a6a9442ebe00e589001b2e4cafd2e5b3a2d6db362b895bd6df63365cabe82fc0111428b05b6
|
SHA512 (abrt-2.14.6.tar.gz) = eb1ba2f624d51eeccd203bb23060493347f5a9142fad7d0570d46134071d870a9c66b4fbfb8210e7d6f87c0c039f31eb486d18a36b10fba318e2180aa09df9fe
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue