You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ken Giusti (JIRA)" <ji...@apache.org> on 2019/01/16 14:40:00 UTC

[jira] [Created] (DISPATCH-1243) Change Valgrind configuration to run only qdrouterd under valgrind

Ken Giusti created DISPATCH-1243:
------------------------------------

             Summary: Change Valgrind configuration to run only qdrouterd under valgrind
                 Key: DISPATCH-1243
                 URL: https://issues.apache.org/jira/browse/DISPATCH-1243
             Project: Qpid Dispatch
          Issue Type: Improvement
          Components: Tests
    Affects Versions: 1.5.0
            Reporter: Ken Giusti
            Assignee: Ken Giusti
             Fix For: 1.6.0


Currently when the unit tests are configured to run with valgrind all spawned executables are run under valgrind.

This means that in addition to qdrouterd running under valgrind things like unit2, qdstat, qdmanage, etc are also run under valgrind.

I propose that we should only be running qdrouterd under valgrind - running anything else under valgrind slows down the unit test runs and really doesn't help achieve the goal of testing the qdrouterd server.

For example simply running the system_tests_qdstat under valgrind results in the following:

 ctest -R qdstat
Test project /home/kgiusti/work/dispatch/qpid-dispatch/BUILD
    Start 27: system_tests_qdstat
1/1 Test #27: system_tests_qdstat ..............   Passed  102.40 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) = 102.41 sec
[kgiusti@localhost BUILD (fix-valgrind)]$ find . -name "valgrind*.xml" | wc
    128     128    8342
[kgiusti@localhost BUILD (fix-valgrind)]$ find . -name "valgrind*.xml" -exec grep "<exe>" {} \; | grep -v valgrind | grep -v qdrouterd | wc
    122     122    5940
[kgiusti@localhost BUILD (fix-valgrind)]$ find . -name "valgrind*.xml" -exec grep "<exe>" {} \; | grep -v valgrind | grep qdrouterd | wc
      6       6     150

In other words valgrind was invoked 128 times during the test run, of which only 6 times was it run on qdrouterd.  122 times valgrind was invoked on something else.

Further analysis show what those 122 valgrind runs operated on:

....
    <exe>/usr/bin/unit2</exe>
    <exe>/usr/bin/unit2</exe>
    <exe>/usr/bin/unit2</exe>
    <exe>/usr/bin/unit2</exe>
....

    <exe>/home/kgiusti/work/dispatch/qpid-dispatch/tools/qdstat</exe>
    <exe>/home/kgiusti/work/dispatch/qpid-dispatch/tools/qdstat</exe>
    <exe>/home/kgiusti/work/dispatch/qpid-dispatch/tools/qdstat</exe>
    <exe>/home/kgiusti/work/dispatch/qpid-dispatch/tools/qdstat</exe>
    <exe>/home/kgiusti/work/dispatch/qpid-dispatch/tools/qdstat</exe>

....

We certainly shouldn't be running unit2 under valgrind, and I would argue running qdstat - a python utility - under valgrind is mostly useless as it primarily tests the python executable.






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org