Ticket #472 (new defect)

Opened 7 years ago

Last modified 7 years ago

valgrind finds 830039 errors running memphis test suite

Reported by: baker Owned by: somebody
Priority: minor Milestone: All Platforms
Component: ALL modules Version: 7.7
Keywords: valgrind Cc:

Description

I ran the Memphis test suite on the 32-bit CentOS Linux 7.7.1 binaries using valgrind by prepending "valgrind -v --leak-check=yes" to the Process entries in startstop_unix.d.

valgrind reported 830039 errors:

ERROR SUMMARY: 830039 errors from 164 contexts (suppressed: 16 from 9)

The errors caught were:

Source and destination overlap in strncpy
Syscall param write(buf) points to uninitialised byte(s)
Conditional jump or move depends on uninitialised value(s)
Use of uninitialised value of size 4
Invalid read of size 4
Access not within mapped region
n bytes in 1 blocks are possibly lost in loss record i of j
n bytes in 1 blocks are definitely lost in loss record i of j

I think most of them were in waver_ServerV. I have not tracked them down yet. I have attached the console output from the run.

I'm hoping this might explain why the Memphis test suite sometimes calculates the correct earthquake location and sometimes does not.

Attachments

earthworm_7.7.1-memphis-valgrind.txt (190.8 KB) - added by baker 7 years ago.
valgrind trace of Memphis test suite

Change History

Changed 7 years ago by baker

valgrind trace of Memphis test suite

comment:1 Changed 7 years ago by baker

The valgrind memcheck component uses a score boarding technique to track memory reads and writes within a process. Therefore, it does not track definitions within shared memory across all the processes using it. The result is that reads of shared variables and messages through the transport routines can be falsely reported as accessing undefined memory. Most of the errors reported for the wave_serverV are in the transport routines or for accesses to messages in shared memory. It will be difficult to sift those out from the accesses that valgrind can properly track. I will try to define valgrind suppression rules to ignore those checks.

Note: See TracTickets for help on using tickets.