Project

General

Profile

Cleanup #535

Errors reported by ThreadSanitizer

Added by Phil Miller almost 5 years ago. Updated about 1 year ago.

Status:
New
Priority:
Low
Assignee:
PPL
Category:
SMP
Target version:
-
Start date:
07/28/2014
Due date:
% Done:

67%

Estimated time:
(Total: 3.00 h)
Spent time:
(Total: 10.00 h)

Description

This is a tracking bug for errors reported by the ThreadSanitizer dynamic checker for data races and other violations of standardized thread semantics. Any of the errors reported under this result in undefined behavior. They also represent noise when we try to debug modifications of SMP versions of the runtime, and when users may try to debug shared-memory optimizations of their program.

Sub-issues will be assigned to individual PPLers, as decided in the core meeting 2014-07-28.


Subtasks

Cleanup #536: Data Races in SMP PCQueueMergedEvan Ramos

Cleanup #537: Data races in handler registration and assignment to global index variablesMergedRonak Buch

Cleanup #538: Data races in global variable initialization, from command-line arguments and otherwiseMergedEric Bohm

Cleanup #539: Data race in ConverseExitIn Progress

Cleanup #540: CmiDestroyLocks destroys a lock that the thread (or another) is holdingNewPPL

Bug #661: Race conditions in restart from checkpoint on SMP buildsMergedPhil Miller

History

#1 Updated by Phil Miller almost 5 years ago

I'll post instructions on building and running with ThreadSanitizer shortly.

#2 Updated by Eric Bohm almost 5 years ago

Could you post a link for instructions to run Thread Sanitizer?

#3 Updated by Ronak Buch almost 5 years ago

To use thread sanitizer, build charm with the tsan option (e.g. ./build charm++ net-linux-x86_64 smp tsan -j16). Thread sanitizer should then automatically run when you run an executable built with that charmc.

#4 Updated by Eric Bohm over 4 years ago

After numerous failed attempts on other machines, I've found this will compile a tsan build on humility:

./build charm++ multicore-linux64 clang tsan -j16

Older kernels and compiler versions will fail to get past the linker test in configure.

The machine will also need /proc/sys/kernel/randomize_va_space set to 1 for the runtime of tsan to work properly.

#5 Updated by Phil Miller over 4 years ago

  • Target version changed from 6.6.1 to 6.7.0

#6 Updated by Phil Miller about 4 years ago

The need for ASLR to be enabled is described in this upstream bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59410

#7 Updated by Nikhil Jain over 3 years ago

  • Target version changed from 6.7.0 to 6.7.1

#8 Updated by Sam White over 3 years ago

  • Target version changed from 6.7.1 to 6.8.0

#9 Updated by Sam White over 2 years ago

  • Category set to SMP

#10 Updated by Phil Miller about 2 years ago

  • Target version changed from 6.8.0 to 6.8.1

#11 Updated by Phil Miller almost 2 years ago

  • Target version changed from 6.8.1 to 6.9.0

#12 Updated by Sam White over 1 year ago

  • Target version deleted (6.9.0)

Also available in: Atom PDF