Project

General

Profile

Cleanup #537

Cleanup #535: Errors reported by ThreadSanitizer

Data races in handler registration and assignment to global index variables

Added by Phil Miller about 4 years ago. Updated 12 months ago.

Status:
Merged
Priority:
Normal
Assignee:
Category:
SMP
Target version:
Start date:
07/28/2014
Due date:
% Done:

90%


Description

// Converse handler registration writing handler indices to a global variable - that write should be made to happen just once
SUMMARY: ThreadSanitizer: data race isomalloc.c:2299 init_comm
SUMMARY: ThreadSanitizer: data race isomalloc.c:2301 init_comm
SUMMARY: ThreadSanitizer: data race isomalloc.c:2302 init_comm
SUMMARY: ThreadSanitizer: data race isomalloc.c:2304 init_comm
SUMMARY: ThreadSanitizer: data race init.C:941 initQd
SUMMARY: ThreadSanitizer: data race init.C:942 initQd
SUMMARY: ThreadSanitizer: data race ccs-builtins.C:643 CWebInit()
SUMMARY: ThreadSanitizer: data race conv-ccs.c:532 CcsInit
SUMMARY: ThreadSanitizer: data race cpuaffinity.c:602 CmiInitCPUAffinity
SUMMARY: ThreadSanitizer: data race cpuaffinity.c:604 CmiInitCPUAffinity
SUMMARY: ThreadSanitizer: data race cputopology.C:412 LrtsInitCpuTopo

// Charm handler registration, as above
SUMMARY: ThreadSanitizer: data race init.C:1241 _initCharm(int, char**)
SUMMARY: ThreadSanitizer: data race init.C:1245 _initCharm(int, char**)
SUMMARY: ThreadSanitizer: data race init.C:1248 _initCharm(int, char**)
SUMMARY: ThreadSanitizer: data race init.C:510 _exitHandler(envelope*)
SUMMARY: ThreadSanitizer: data race ckarray.C:753 _ckArrayInit()
SUMMARY: ThreadSanitizer: data race NullLB.C:47 lbprocinit()

The registration code needs to be modified to uniformly use functions that get the global initialization right internally

History

#1 Updated by Ronak Buch about 4 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 50

#2 Updated by Phil Miller almost 4 years ago

Ping. We'd like to have a fix for this merged before the core meeting. This should be fairly simple, and would make a substantial difference for people who want to use ThreadSanitizer.

#3 Updated by Nikhil Jain almost 4 years ago

Ping! Please tend to this.

#4 Updated by Ronak Buch almost 4 years ago

There's a commit waiting for review at http://charm.cs.illinois.edu/gerrit/#/c/381/.

#5 Updated by Nikhil Jain almost 4 years ago

Ah nice..thanks for updating.

#6 Updated by Phil Miller almost 4 years ago

  • Target version changed from 6.6.1 to 6.7.0

#7 Updated by Phil Miller about 3 years ago

Review had easy to address comments 7 months ago

#8 Updated by Nikhil Jain almost 3 years ago

  • Target version changed from 6.7.0 to 6.7.1

#9 Updated by Sam White over 2 years ago

  • Status changed from In Progress to Implemented
  • % Done changed from 50 to 90

#10 Updated by Sam White over 2 years ago

  • Target version changed from 6.7.1 to 6.8.0

#11 Updated by Phil Miller almost 2 years ago

  • Status changed from Implemented to In Progress

This has sat around for 2 years. Please just finish the patch already.

#12 Updated by Sam White over 1 year ago

  • Category set to SMP

Still hanging in gerrit, waiting on cleanup...

#13 Updated by Phil Miller over 1 year ago

  • Target version changed from 6.8.0 to 6.8.1

#14 Updated by Phil Miller about 1 year ago

  • Target version changed from 6.8.1 to 6.9.0

Ronak noted that the fix ran into trouble in rebasing and cleaning up. He'll add details here and/or on Gerrit

#15 Updated by Ronak Buch about 1 year ago

Some fixes that I've been trying to do for this (editing calls to happen only once and inserting barriers to prevent other threads from getting too far) have been causing segfaults in my testing, and I've been unable to debug them (trying to attach a debugger causes hangs). I'll add manual debugging prints or something along those lines to get more insight.

#16 Updated by Ronak Buch 12 months ago

  • Status changed from In Progress to Implemented

#17 Updated by Phil Miller 12 months ago

  • Status changed from Implemented to Merged

Also available in: Atom PDF