X-LAMP: eXposing Latent Races in LArge-scale Multithreaded Programs
DescriptionProgram testing by executing programs over test cases is the most widely practicedapproach to exposing problems in these programs, thereby assuring their quality duringsoftware development. Programs are increasingly complex and large in scale. More andmore programs use the multithreading technology in handling their processing tasks.Many important programs adopt the multithreaded technology.Critical failures of these useful multithreaded programs such as halts and crashes arereported by users from time to time. They show that there are still many hidden issuesin these programs even after comprehensive program testing to have tried to exposethem. Many of them are originated from the presences of concurrency bugs in theseprogram execution traces. Moreover, the presence of data races in programs oftenindicate the presences of other concurrency bugs in the same program.A data race in an execution trace means that multiple threads in the trace put pieces ofdata in the same memory location or get the data from that location, but without anymechanism to coordinate the actions taken by these threads from resulting in conflictingaccesses. Detecting latent races, which are races that are still unexposed even aftercomprehensive testing, are essential in order to improve the quality of these programsfurther.Static analysis and model checking techniques in analyzing large-scale multithreadedprograms are either imprecise or impractical. Dynamic approach to testing is essential todemonstrate the presence of data races instead of merely reporting the potentials of thecode to produce them. Nonetheless, the state of the art techniques can only reveal verysmall amount of latent races. Our experiment also confirms similar points.This project aims at developing a novel X-LAMP framework to support the detection oflatent races in large-scale multithreaded programs. X-LAMP addresses the keychallenge in interleaving-sensitive issue in precise latent race detection through threadschedule generation. This project will also educate students so that they can effectivelycontribute to the growth of the software industry after graduation.
|Effective start/end date||1/01/16 → 8/06/20|
- program testing,multithreaded programs,adaptive testing,thread scheduling,