|
Matej Habrnal |
c40d95 |
From 8f26482402179dc64b9488be05ef9686922446ec Mon Sep 17 00:00:00 2001
|
|
Matej Habrnal |
c40d95 |
From: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
c40d95 |
Date: Fri, 24 Jul 2015 13:50:00 +0200
|
|
Matej Habrnal |
c40d95 |
Subject: [PATCH] vmcore: read vmcore by chunks
|
|
Matej Habrnal |
c40d95 |
|
|
Matej Habrnal |
c40d95 |
Reading vmcore by lines was not a good idea and the switch to Python 3
|
|
Matej Habrnal |
c40d95 |
makes it impossible because of the binary format of that file (the file
|
|
Matej Habrnal |
c40d95 |
does not contain only valid Unicode strings and that raises
|
|
Matej Habrnal |
c40d95 |
UnicodeDecodeError from the for statement).
|
|
Matej Habrnal |
c40d95 |
|
|
Matej Habrnal |
c40d95 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
c40d95 |
---
|
|
Matej Habrnal |
c40d95 |
src/hooks/abrt_harvest_vmcore.py.in | 9 ++++++---
|
|
Matej Habrnal |
c40d95 |
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
Matej Habrnal |
c40d95 |
|
|
Matej Habrnal |
c40d95 |
diff --git a/src/hooks/abrt_harvest_vmcore.py.in b/src/hooks/abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
c40d95 |
index c5e7d53..61a6e57 100644
|
|
Matej Habrnal |
c40d95 |
--- a/src/hooks/abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
c40d95 |
+++ b/src/hooks/abrt_harvest_vmcore.py.in
|
|
Matej Habrnal |
c40d95 |
@@ -214,9 +214,12 @@ def harvest_vmcore():
|
|
Matej Habrnal |
c40d95 |
hashobj = hashlib.sha1()
|
|
Matej Habrnal |
c40d95 |
# Iterate over the file a line at a time in order to not load the whole
|
|
Matej Habrnal |
c40d95 |
# vmcore file
|
|
Matej Habrnal |
c40d95 |
- with open(os.path.join(f_full, 'vmcore'), 'r') as corefile:
|
|
Matej Habrnal |
c40d95 |
- for line in corefile:
|
|
Matej Habrnal |
c40d95 |
- hashobj.update(line)
|
|
Matej Habrnal |
c40d95 |
+ with open(os.path.join(f_full, 'vmcore'), 'rb') as corefile:
|
|
Matej Habrnal |
c40d95 |
+ while True:
|
|
Matej Habrnal |
c40d95 |
+ chunk = corefile.read(8192)
|
|
Matej Habrnal |
c40d95 |
+ if not chunk:
|
|
Matej Habrnal |
c40d95 |
+ break
|
|
Matej Habrnal |
c40d95 |
+ hashobj.update(chunk)
|
|
Matej Habrnal |
c40d95 |
|
|
Matej Habrnal |
c40d95 |
dd = create_abrtd_info(destdirnew, hashobj.hexdigest())
|
|
Matej Habrnal |
c40d95 |
if dd is None:
|
|
Matej Habrnal |
c40d95 |
--
|
|
Matej Habrnal |
c40d95 |
2.4.6
|
|
Matej Habrnal |
c40d95 |
|