Mir

Comment 4 for bug 1413748

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

The failing tests are tests that use a forked process to execute code. When that forked process ends (as part of the test) valgrind reports any memory errors found. It seems, however, that valgrind reports in the forked process all errors that occured in the parent process. So, all memory errors found in the parent process before each test that forks affect the result of every forked process. Perhaps bug 1407863 is also an instance of this problem.

In this particular case, what caused the memory error was an update to libgcc_s.so.1 which introduces "Invalid write of size 4" memory errors on armhf [1]. Due to the interaction between parent and forked processes described in the previous paragraph, this memory error caused the forked processes to return a non-zero value (because we use --error-exitcode=1), causing the respective tests to fail.

The proposed fix is to update the new memory error from libgcc_s.so.1 . Although it's possible that this is a genuine memory error in libgcc_s.so.1, previous experience indicates that this is probably a false positive. In any case, it's outside the scope of the Mir project.

[1] For example:
8: [ RUN ] GMock.return_by_move
8: ==10949== Invalid write of size 4
8: ==10949== at 0x4D7AC06: ??? (in /lib/arm-linux-gnueabihf/libgcc_s.so.1)
8: ==10949== Address 0xbdb8c740 is on thread 1's stack
8: ==10949== 16 bytes below stack pointer