gcovr consumes 100% CPU with gcc 4.9

Bug #1354273 reported by Michi Henning
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gcovr
New
Undecided
Unassigned

Bug Description

Since installing gcc 4.9, gcovr no longer works for me. (No problems with 4.8.) From my cmake build:

Processing file src/scopes/testing/InProcessBenchmark.cpp
Processing file src/scopes/testing/Benchmark.cpp
Processing file src/scopes/testing/OutOfProcessBenchmark.cpp
Processing file src/scopes/testing/ScopeMetadataBuilder.cpp
Processing file src/scopes/testing/Statistics.cpp
Writing directory view page.
Overall coverage rate:
  lines......: 2.8% (259 of 9367 lines)
  functions..: 7.8% (187 of 2405 functions)
[ 98%] Generating coverage XML report

At that point, the build hangs. Looking at gcovr with ps, I see:

/usr/bin/python /usr/bin/gcovr -x -r /home/michi/src/devel -e /usr/include -e /home/michi/src/devel/test/* -e /home/michi/src/devel/build/*

top shows gcovr consuming 100% CPU.

Interestingly enough, it seems that most (or even all) of the HTML output is actually generated regardless. When I interrupt the build, I get the following from Python:

Traceback (most recent call last):
  File "/usr/bin/gcovr", line 1828, in <module>
make[3]: *** Deleting file 'coverage.xml'
    datafiles = get_datafiles(options.root, options)
  File "/usr/bin/gcovr", line 377, in get_datafiles
    files = search_file(".*\.gc(da|no)$", dir)
  File "/usr/bin/gcovr", line 357, in search_file
    for root, dirs, files in link_walker(path):
  File "/usr/bin/gcovr", line 317, in link_walker
    yield os.path.abspath(os.path.realpath(root)), dirs, files
  File "/usr/lib/python2.7/posixpath.py", line 382, in realpath
    path, ok = _joinrealpath('', filename, {})
  File "/usr/lib/python2.7/posixpath.py", line 407, in _joinrealpath
CMakeFiles/coverage.dir/build.make:61: recipe for target 'coverage.xml' failed
    if not islink(newpath):
  File "/usr/lib/python2.7/posixpath.py", line 142, in islink
make[3]: *** [coverage.xml] Interrupt
    st = os.lstat(path)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.