Bug 591504

Summary: sparse core files performance hit
Product: Red Hat Enterprise Linux 6 Reporter: Jiri Moskovcak <jmoskovc>
Component: abrtAssignee: Jiri Moskovcak <jmoskovc>
Status: CLOSED CURRENTRELEASE QA Contact: Michal Nowak <mnowak>
Severity: low Docs Contact:
Priority: low    
Version: 6.0CC: ahecox, anton, dfediuck, dvlasenk, gavin, iprikryl, jan.kratochvil, jmoskovc, keiths, kklic, mnowak, npajkovs, ohudlick, rvokal, syeghiay
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: abrt-1.1.1-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 588945 Environment:
Last Closed: 2010-07-02 18:47:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 588945    
Bug Blocks:    

Description Jiri Moskovcak 2010-05-12 12:35:49 UTC
+++ This bug was initially created as a clone of Bug #588945 +++

Description of problem:
When the core file is large and sparse abrtd slows down the system up to 240x.
GDB gdb.base/bigcore.exp explicitly exploits this problem but it can be seen in other real world core dumps.
If nothing else abrtd should at least optimize write(usercorefile,zeroes) to lseek().

Version-Release number of selected component (if applicable):
abrt-1.0.9-2.fc12.x86_64

How reproducible:
Always.

Steps to Reproduce:
Download some gdb.
./configure
make
cd gdb/testsuite
make site.exp
time runtest gdb.base/bigcore.exp
service abrtd stop
time runtest gdb.base/bigcore.exp

Actual results:
real	1m41.021s (Keith Seitz has reported ~8min on his box)
real	0m2.223s

Expected results:
real	<few secs>
real	0m2.223s

Additional info:
read(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
...
  PID TTY      STAT   TIME COMMAND
   12 ?        S      0:01  \_ [khelper]
21699 ?        D      0:02  |   \_ /usr/libexec/abrt-hook-ccpp /var/cache/abrt 21696 6 502 17179869184
...
/proc/21699/fd/
lr-x------ 1 root root 64 2010-05-04 23:31 0 -> pipe:[11399566]
lrwx------ 1 root root 64 2010-05-04 23:31 1 -> /var/cache/abrt/ccpp-1273008577-21696/coredump\ (deleted)
lrwx------ 1 root root 64 2010-05-04 23:31 2 -> socket:[11401038]
l-wx------ 1 root root 64 2010-05-04 23:31 3 -> /home/.../gdb/testsuite/core.21696

--- Additional comment from jan.kratochvil on 2010-05-04 17:55:56 EDT ---

Maybe some hardlink would also help etc., unaware what abrt does there.

--- Additional comment from dvlasenk on 2010-05-07 08:47:03 EDT ---

Created an attachment (id=412336)
Proposed fix

Run tested.

--- Additional comment from dvlasenk on 2010-05-07 09:15:20 EDT ---

"time runtest gdb.base/bigcore.exp" with this patch went down from 

real	9m23.708s
user	0m0.285s
sys	0m22.819s

to

real	0m35.821s
user	0m0.318s
sys	0m8.738s

Comment 1 RHEL Program Management 2010-05-12 13:17:36 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 4 releng-rhel@redhat.com 2010-07-02 18:47:35 UTC
Red Hat Enterprise Linux Beta 2 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.