PERIOD

Controlled Concurrency Testing Via Periodical Scheduling

About PERIOD

Controlled Concurrency testing (CCT) techniques have been shown promising for concurrency bugs detection. They often have a mechanism to control the order in which threads get executed, and attempt to explore the space of possible interleavings of a concurrent program to detect bugs. Various CCT techniques have been proposed, but they are generally ineffective and ad-hoc. In this paper, we introduce a novel CCT technique PERIOD. Unlike previous works, PERIOD models the execution of concurrent programs as periodical execution, and systematically explores the space of possible interleavings, where the exploration is guided by periodical scheduling and influenced by previously tested interleavings. We have evaluated PERIOD on 10 real-world CVEs and 36 widely-used benchmark programs. Our experimental results show that PERIOD demonstrates superiority over other CCT techniques in both effectiveness and performance overhead. Moreover, we have discovered 5 previously unknown concurrency bugs in real-world programs.

NOTE:

The PERIOD tool and all benchmarks used in our evaluation are available on the Tool and Benchmarks Page.

A list of our newly detected concurrency bugs is available on the Detected Bugs Page.

Note that the DATA and CODE are free for Research and Education Use ONLY. Please cite our paper (add the bibtex below) if you use any part of our ALGORITHM, CODE, DATA, or RESULTS in any publication.


@inproceedings{wen2022period,

author = {Wen, Cheng and He, Mengda and Wu, Bohao and Xu, Zhiwu and Qin, Shengchao},

title = {Controlled Concurrency Testing via Periodical Scheduling},

year = {2022},

isbn = {9781450392211},

publisher = {Association for Computing Machinery},

address = {New York, NY, USA},

url = {https://doi.org/10.1145/3510003.3510178},

doi = {10.1145/3510003.3510178},

booktitle = {Proceedings of the ACM/IEEE 4th International Conference on Software Engineering},

keywords = {software vulnerability, memory consumption, fuzz testing},

location = {Pittsburgh, USA},

series = {ICSE '22}

}