Reports

Bypassing Races in Live Applications with Execution Filters

Wu, Jingyue; Cui, Heming; Yang, Junfeng

Deployed multithreaded applications contain many races because these applications are difficult to write, test, and debug. Worse, the number of races in deployed applications may drastically increase due to the rise of multicore hardware and the immaturity of current race detectors. LOOM is a “live-workaround” system designed to quickly and safely bypass application races at runtime. LOOM provides a flexible and safe language for developers to write execution filters that explicitly synchronize code. It then uses an evacuation algorithm to safely install the filters to live applications to avoid races. It reduces its performance overhead using hybrid instrumentation that combines static and dynamic instrumentation. We evaluated LOOM on nine real races from a diverse set of six applications, including MySQL and Apache. Our results show that (1) LOOM can safely fix all evaluated races in a timely manner, thereby increasing application availability; (2) LOOM incurs little performance overhead; (3) LOOM scales well with the number of application threads; and (4) LOOM is easy to use.

Keywords: Multithreading; Reliability; Live update; Race; Execution filter; Program instrumentation

Files

More About This Work

Academic Units
Computer Science
Series
Columbia University Computer Science Technical Reports, CUCS-036-10
Published Here
August 31, 2026

Notes

Original departmental record: MICE technical-report ID 1498, published 2010-09-30. The MICE download filename incorrectly labels this file CUCS-036-11; CUCS-036-10 is the correct report number.