TY - GEN
T1 - Localization of linearizability faults on the coarse-grained level
AU - Zhang, Zhenya
AU - Wu, Peng
AU - Zhang, Yu
N1 - Funding Information:
This work is partially supported by the National Natural Science Foundation of China under Grants No.61100069, No.61161130530, and by the National Key Basic Research Program of China under Grant No.2014CB340701.
PY - 2017
Y1 - 2017
N2 - Linearizability is an important correctness criterion that guarantees the safety of concurrent data structures. Due to the nondeterminism of concurrent executions, reproduction and localization of a linearizability fault still remain challenging. The existing work mainly focuses on model checking the thread schedule space of a concurrent program on a fine-grained (state) level, and hence suffers from the severe problem of state space explosion. This paper presents a tool called CGVT to build a small test case that is sufficient enough for reproducing a linearizability fault. Given a possibly long history that has been detected non-linearizable, CGVT first locates the operations causing a linearizability violation, and then synthesizes a short test case for further investigation. Moreover, we present several optimization techniques to improve the effectiveness and efficiency of CGVT. We have applied CGVT to 10 concurrent objects, while the linearizability of some of the concurrent objects is unknown yet. The experiments show that CGVT is powerful and efficient enough to build the test cases adaptable for a fine-grained analysis.
AB - Linearizability is an important correctness criterion that guarantees the safety of concurrent data structures. Due to the nondeterminism of concurrent executions, reproduction and localization of a linearizability fault still remain challenging. The existing work mainly focuses on model checking the thread schedule space of a concurrent program on a fine-grained (state) level, and hence suffers from the severe problem of state space explosion. This paper presents a tool called CGVT to build a small test case that is sufficient enough for reproducing a linearizability fault. Given a possibly long history that has been detected non-linearizable, CGVT first locates the operations causing a linearizability violation, and then synthesizes a short test case for further investigation. Moreover, we present several optimization techniques to improve the effectiveness and efficiency of CGVT. We have applied CGVT to 10 concurrent objects, while the linearizability of some of the concurrent objects is unknown yet. The experiments show that CGVT is powerful and efficient enough to build the test cases adaptable for a fine-grained analysis.
UR - http://www.scopus.com/inward/record.url?scp=85029528645&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85029528645&partnerID=8YFLogxK
U2 - 10.18293/SEKE2017-145
DO - 10.18293/SEKE2017-145
M3 - Conference contribution
AN - SCOPUS:85029528645
T3 - Proceedings of the International Conference on Software Engineering and Knowledge Engineering, SEKE
SP - 272
EP - 277
BT - Proceedings - SEKE 2017
PB - Knowledge Systems Institute Graduate School
T2 - 29th International Conference on Software Engineering and Knowledge Engineering, SEKE 2017
Y2 - 5 July 2017 through 7 July 2017
ER -