|
Matej Habrnal |
933436 |
From 57c975dfda165098502cdb9e2525bc7877301a12 Mon Sep 17 00:00:00 2001
|
|
Matej Habrnal |
933436 |
From: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
933436 |
Date: Mon, 13 Jun 2016 09:43:21 +0200
|
|
Matej Habrnal |
933436 |
Subject: [PATCH] vmcore: fix finding partitions by UUID and LABEL
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
In kdump.conf fs partition can be specified by UUID or LABEL but mtab
|
|
Matej Habrnal |
933436 |
uses only file system node path. Hence, we need to translate the ID to
|
|
Matej Habrnal |
933436 |
its node path.
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
Related: rhbz#1147053
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
933436 |
---
|
|
Matej Habrnal |
933436 |
configure.ac | 2 ++
|
|
Matej Habrnal |
933436 |
src/hooks/Makefile.am | 1 +
|
|
Matej Habrnal |
933436 |
src/hooks/abrt_harvest_vmcore.py.in | 27 +++++++++++++++++++++++++++
|
|
Matej Habrnal |
933436 |
3 files changed, 30 insertions(+)
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
diff --git a/configure.ac b/configure.ac
|
|
Matej Habrnal |
933436 |
index 98e2564..8e13524 100644
|
|
Matej Habrnal |
933436 |
--- a/configure.ac
|
|
Matej Habrnal |
933436 |
+++ b/configure.ac
|
|
Matej Habrnal |
933436 |
@@ -263,6 +263,8 @@ AC_ARG_ENABLE(doxygen-docs,
|
|
Matej Habrnal |
933436 |
[enable_doxygen_docs=no]
|
|
Matej Habrnal |
933436 |
)
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
+AC_PATH_PROG([BLKID], [BLKID], [/usr/sbin/blkid], [$PATH:/usr/sbin:/sbin])
|
|
Matej Habrnal |
933436 |
+
|
|
Matej Habrnal |
933436 |
# Doxygen Documentation
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
AC_PATH_PROG(DOXYGEN, doxygen, no)
|
|
Matej Habrnal |
933436 |
diff --git a/src/hooks/Makefile.am b/src/hooks/Makefile.am
|
|
Matej Habrnal |
933436 |
index bf68994..c0255d9 100644
|
|
Matej Habrnal |
933436 |
--- a/src/hooks/Makefile.am
|
|
Matej Habrnal |
933436 |
+++ b/src/hooks/Makefile.am
|
|
Matej Habrnal |
933436 |
@@ -119,6 +119,7 @@ abrt-install-ccpp-hook: abrt-install-ccpp-hook.in
|
|
Matej Habrnal |
933436 |
abrt-harvest-vmcore: abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
933436 |
sed -e s,\@CONF_DIR\@,\$(CONF_DIR)\,g \
|
|
Matej Habrnal |
933436 |
-e s,\@DEFAULT_DUMP_LOCATION\@,$(DEFAULT_DUMP_LOCATION),g \
|
|
Matej Habrnal |
933436 |
+ -e s,\@BLKID\@,$(BLKID),g \
|
|
Matej Habrnal |
933436 |
$< >$@
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
abrt-harvest-pstoreoops: abrt-harvest-pstoreoops.in
|
|
Matej Habrnal |
933436 |
diff --git a/src/hooks/abrt_harvest_vmcore.py.in b/src/hooks/abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
933436 |
index 61a6e57..ab976dc 100644
|
|
Matej Habrnal |
933436 |
--- a/src/hooks/abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
933436 |
+++ b/src/hooks/abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
933436 |
@@ -13,6 +13,7 @@ import shutil
|
|
Matej Habrnal |
933436 |
import time
|
|
Matej Habrnal |
933436 |
import hashlib
|
|
Matej Habrnal |
933436 |
import augeas
|
|
Matej Habrnal |
933436 |
+from subprocess import Popen, PIPE
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
import problem
|
|
Matej Habrnal |
933436 |
import report
|
|
Matej Habrnal |
933436 |
@@ -38,6 +39,32 @@ def get_mount_point(part_id):
|
|
Matej Habrnal |
933436 |
part_id - device node, label or uuid
|
|
Matej Habrnal |
933436 |
"""
|
|
Matej Habrnal |
933436 |
|
|
Matej Habrnal |
933436 |
+ idtypes = {"UUID=":"-U", "PARTUUID=":"-U", "LABEL=":"-L", "PARTLABEL=":"-L"}
|
|
Matej Habrnal |
933436 |
+
|
|
Matej Habrnal |
933436 |
+ for typ, switch in idtypes.items():
|
|
Matej Habrnal |
933436 |
+ if not part_id.startswith(typ):
|
|
Matej Habrnal |
933436 |
+ continue
|
|
Matej Habrnal |
933436 |
+
|
|
Matej Habrnal |
933436 |
+ idf = part_id[len(typ):]
|
|
Matej Habrnal |
933436 |
+ try:
|
|
Matej Habrnal |
933436 |
+ proc = Popen(["@BLKID@", switch, idf], stdout=PIPE, stderr=PIPE)
|
|
Matej Habrnal |
933436 |
+ out, err = proc.communicate()
|
|
Matej Habrnal |
933436 |
+ if err:
|
|
Matej Habrnal |
933436 |
+ sys.stderr.write("Failed 'blkid {0} {1}': {2}\n"
|
|
Matej Habrnal |
933436 |
+ .format(switch, idf, err))
|
|
Matej Habrnal |
933436 |
+ sys.exit(1)
|
|
Matej Habrnal |
933436 |
+ if not out:
|
|
Matej Habrnal |
933436 |
+ sys.stderr.write("No results from 'blkid {0} {1}'\n"
|
|
Matej Habrnal |
933436 |
+ .format(switch, idf))
|
|
Matej Habrnal |
933436 |
+ sys.exit(1)
|
|
Matej Habrnal |
933436 |
+
|
|
Matej Habrnal |
933436 |
+ part_id = out.decode().strip()
|
|
Matej Habrnal |
933436 |
+ break
|
|
Matej Habrnal |
933436 |
+ except OSError as ex:
|
|
Matej Habrnal |
933436 |
+ sys.stderr.write("Cannot run 'blkid {0} {1}': {2}\n"
|
|
Matej Habrnal |
933436 |
+ .format(switch, idf, str(ex)))
|
|
Matej Habrnal |
933436 |
+ sys.exit(1)
|
|
Matej Habrnal |
933436 |
+
|
|
Matej Habrnal |
933436 |
# look up the identifier in /etc/mtab
|
|
Matej Habrnal |
933436 |
result = get_augeas("Fstab", "/etc/mtab").get("/files/etc/mtab/*"
|
|
Matej Habrnal |
933436 |
"[spec=\"" + part_id + "\"]/file")
|
|
Matej Habrnal |
933436 |
--
|
|
Matej Habrnal |
933436 |
2.7.4
|
|
Matej Habrnal |
933436 |
|