Dynamic Robustness Verification against Weak Memory

Roy Margalit, Michalis Kokologiannakis, Shachar Itzhaky, Ori Lahav

Research output: Contribution to journalArticlepeer-review

Abstract

Dynamic race detection is a highly effective runtime verification technique for identifying data races by instrumenting and monitoring concurrent program runs. However, standard dynamic race detection is incompatible with practical weak memory models; the added instrumentation introduces extra synchronization, which masks weakly consistent behaviors and inherently misses certain data races. In response, we propose to dynamically verify program robustness-a property ensuring that a program exhibits only strongly consistent behaviors. Building on an existing static decision procedure, we develop an algorithm for dynamic robustness verification under a C11-style memory model. The algorithm is based on "location clocks", a variant of vector clocks used in standard race detection. It allows effective and easy-to-apply defense against weak memory on a per-program basis, which can be combined with race detection that assumes strong consistency. We implement our algorithm in a tool, called RSAN, and evaluate it across various settings. To our knowledge, this work is the first to propose and develop dynamic verification of robustness against weak memory models.

Original languageEnglish
Article number174
JournalProceedings of the ACM on Programming Languages
Volume9
DOIs
StatePublished - 10 Jun 2025

Keywords

  • C/C++11
  • Dynamic race detection
  • Robustness
  • Weak memory models

All Science Journal Classification (ASJC) codes

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Dynamic Robustness Verification against Weak Memory'. Together they form a unique fingerprint.

Cite this