https://bugs.kde.org/show_bug.cgi?id=492342
Bug ID: 492342 Summary: Nondeterministic results - Missing Nodes and Edges across multiple of the same executables tested Classification: Developer tools Product: valgrind Version: 3.18.1 Platform: Ubuntu OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: callgrind Assignee: josef.weidendor...@gmx.de Reporter: jo.al...@outlook.com Target Milestone: --- Created attachment 173064 --> https://bugs.kde.org/attachment.cgi?id=173064&action=edit Refer to the "Observed Results" section for the explanation behind this. Hi Valgrind Maintainers and Team! I have been using Valgrind as a tool to check for nondeterministic behaviors and I know that there are multiple subtools that Valgrind's suite comes with. I would like to inquire about the following tools that exhibited flakiness as I conducted these runs (you can read below regarding the methodology of how I conducted such experiments). The terminology "projects" and "repositories" may be used interchangeable here: STEPS TO REPRODUCE 1. Use a GitHub Actions runner with Ubuntu 22.04 + Valgrind 3.18.1 pulled from the Ubuntu package manager 2. Run your executable with Callgrind enabled. 3. Open Callgrind generated reports into KCachegrind to then export as graphViz files. OBSERVED RESULT We tested 41 sample repositories against Valgrind and found that five of these repositories seemed to report missing nodes and edges from Callgrind reports. Here we have a sample repository that shows the differences in the missing nodes + the edges. To explain why we show program A and B for missing nodes and edges is because with program A, we have a large amount of missing edges that would be difficult to show as a demonstration. In short, from the screenshots (yellow represents the nodes being the same in each run): Program A exhibited these nodes statistics (note that these clusters are part of the Callgrind, but for demonstration purposes, we truncate to two): - Run A produced (8 nodes in libc.so.6 & 13 libevent_core-2.2.so.1.0.0) - Run B produced (3 nodes in libc.so.6 & 15 libevent_core-2.2.so.1.0.0) Program B exhibited these edge statistics: - Run A: 20 edges - Run B: 32 edges Another interesting point of observation is how in the missing nodes page, we see that there is no overlap in nodes between two runs of the same program despite keeping all executable configurations the same. EXPECTED RESULT Consistent nodes and edge graphs for a particular program, where we note that 36 repositories were able to yield the same or close number of nodes and edges in a particular Callgrind report. ADDITIONAL INFORMATION Refer to the following attachments. -- You are receiving this mail because: You are watching all bug changes.