Difference between revisions of "ValgrindTasks"

From Apache OpenOffice Wiki
Jump to: navigation, search
(How to Read the Task Text: The topmost stacked function isn't necessarily the culprit.)
 
(4 intermediate revisions by 2 users not shown)
Line 31: Line 31:
 
* run the Office under the test tool and let run one of the mentioned tests, set a breakpoint into the first stack frame and try to find the memory violation,
 
* run the Office under the test tool and let run one of the mentioned tests, set a breakpoint into the first stack frame and try to find the memory violation,
 
* run the Office under Valgrind and try do anything to enter the given stack frame.
 
* run the Office under Valgrind and try do anything to enter the given stack frame.
 +
 +
Until now (Oct 24 2006) submitted tasks are created with Valgrind version 3.2.0 .
  
 
=== Verifying ===
 
=== Verifying ===
 
These bugs can normally not be seen by QA, so they should be verified by developer review. If the task's fix is integrated into a milestone and after that would occur again in a Valgrind run, this would be noticed and then the task be reopened again.
 
These bugs can normally not be seen by QA, so they should be verified by developer review. If the task's fix is integrated into a milestone and after that would occur again in a Valgrind run, this would be noticed and then the task be reopened again.
  
=== External Tasks ===
+
=== Unfixable Tasks ===
At the beginning, there may occur a few tasks which are known, but cannot be fixed, because it is code in 3rd party libraries (like X11). Those tasks can be set to RESOLVED/INVALID (as these are no OpenOffice.org bugs). Future Valgrind runs will be modified, so these issues  will not be filed again.
+
Sometimes tasks occur in third party code, or there may be (quite rarely) false positives or the problem cannot be fixed for another reason. This is the suggested handling for those:
 +
 
 +
==== External Tasks ====
 +
If the defect occurs in third party code, the task can be set to RESOLVED/INVALID (as these are no OpenOffice.org bugs). Future Valgrind runs will be modified, so these issues  will not be filed again.
 +
 
 +
==== Other ====
 +
# Contact [[User:np|Nikolai]] (np AT openoffice DOT org) and describe, why this is "unfixable". Possibly there can be found a solution.
 +
# If the task still is not fixable, set status to RESOLVED/WONTFIX but leave it open and hand it over to Nikolai (IssueZilla-Id: np).
 +
#* If it is suspect to be a false positive, that will be checked, as soon as a run with a newer Valgrind version is done.
 +
#* If it is just not fixable, the internal Valgrind database will label this task, so this task is not submitted again. The task will be closed. This case, however, should occur as rare as possible, because Valgrind tasks show memory corruption which, of course, is undesirable to keep in the Office.
 +
 
  
 
=== Links and Contact ===
 
=== Links and Contact ===
Line 43: Line 55:
 
Using Valgrind with OOo: [[Valgrind]]
 
Using Valgrind with OOo: [[Valgrind]]
  
Automatic GUI Tests: http://qa.openoffice.org/qatesttool/
+
Automatic GUI Tests: http://qa.openoffice.org/qatesttool/ [[TestToolWithValgrind]]
  
 
Contact (regarding Valgrind tasks): np AT_NOSPAM openoffice DOT_NOSPAM org
 
Contact (regarding Valgrind tasks): np AT_NOSPAM openoffice DOT_NOSPAM org
 +
[[Category:Debugging]]

Latest revision as of 11:33, 22 March 2010

What is it?

There may occur tasks in IssueZilla whose summary begins with "Valgrind ".

These tasks are generated by memory violation messages of Valgrind, or to be more specific: Valgrind's "memcheck" tool.

Valgrind does only runtime tests, so the number of results depends on executing the Office in as many different ways as possible. To do that, the tests of the automated GUI testing are run under Valgrind.

These tasks are memory violation errors and as such potential GPFs.

Target and Priority

The severity is inbetween P2 and P3. Normally these tasks should be fixed to the next available release.

Owner

The tasks are generated automaticly, the owners are deduced from the file name where the issue occurred (in rare cases there may only be known a library name). As owner association is done automatically, owners might be inaccurate sometimes. Then, please forward the task to the appropriate owner.

How to Read the Task Text

The task text starts with

Error Type:   like "Invalid read"
Error Text:   like "Invalid read of size 16"

then follows the call stack of the function that violated the memory. The topmost frame being the place where the error happened. This doesn't necessarily have to be the place of the real cause, since an unitialized variable may get passed as a parameter through a chain of function calls and then is reported where it is first used, so you may have to hunt down the stack to find the real culprit where the variable is defined but not initialized.

Sometimes there follows a line

ADDR:

that gives the address where memory was violated, this may be followed by the call stack where this memory was allocated (if it was allocated at all).

At the bottom is a list of the automatic GUI tests where this error occured (find those tests in the list at http://qa.openoffice.org/qatesttool/all_tests_ooo203.html)

To debug this, compile the library of the first stack frame with debug. Then you can either

  • run the Office under the test tool and let run one of the mentioned tests, set a breakpoint into the first stack frame and try to find the memory violation,
  • run the Office under Valgrind and try do anything to enter the given stack frame.

Until now (Oct 24 2006) submitted tasks are created with Valgrind version 3.2.0 .

Verifying

These bugs can normally not be seen by QA, so they should be verified by developer review. If the task's fix is integrated into a milestone and after that would occur again in a Valgrind run, this would be noticed and then the task be reopened again.

Unfixable Tasks

Sometimes tasks occur in third party code, or there may be (quite rarely) false positives or the problem cannot be fixed for another reason. This is the suggested handling for those:

External Tasks

If the defect occurs in third party code, the task can be set to RESOLVED/INVALID (as these are no OpenOffice.org bugs). Future Valgrind runs will be modified, so these issues will not be filed again.

Other

  1. Contact Nikolai (np AT openoffice DOT org) and describe, why this is "unfixable". Possibly there can be found a solution.
  2. If the task still is not fixable, set status to RESOLVED/WONTFIX but leave it open and hand it over to Nikolai (IssueZilla-Id: np).
    • If it is suspect to be a false positive, that will be checked, as soon as a run with a newer Valgrind version is done.
    • If it is just not fixable, the internal Valgrind database will label this task, so this task is not submitted again. The task will be closed. This case, however, should occur as rare as possible, because Valgrind tasks show memory corruption which, of course, is undesirable to keep in the Office.


Links and Contact

Valgrind: http://www.valgrind.org/

Using Valgrind with OOo: Valgrind

Automatic GUI Tests: http://qa.openoffice.org/qatesttool/ TestToolWithValgrind

Contact (regarding Valgrind tasks): np AT_NOSPAM openoffice DOT_NOSPAM org

Personal tools