Fray: An Efficient General-Purpose Concurrency Testing Platform for the JVM (Extended Version)
Ao Li, Byeongjee Kang, Vasudev Vikram, Isabella Laybourn, Samvid Dharanikota, Shrey Tiwari, and Rohan Padhye

TL;DR
Fray is a new platform for efficient, push-button concurrency testing of JVM programs that improves bug detection over existing tools by using a novel concurrency control mechanism called shadow locking.
Contribution
It introduces Fray, a concurrency testing platform that employs shadow locking to effectively explore thread interleavings without replacing existing primitives.
Findings
Fray finds 70% more bugs than JPF on benchmark programs.
Fray detects 77% more bugs than RR's chaos mode.
Successfully discovered 18 real-world concurrency bugs in mature projects.
Abstract
Concurrency bugs are hard to discover and reproduce. Prior work has developed sophisticated algorithms to search for concurrency bugs, such as partial order sampling (POS); however, fundamental limitations with existing platforms for concurrency control hinder effective testing of real-world software. We observe that the design space for concurrency control on managed code involves complex trade-offs between expressibility, applicability, and maintainability on the one hand, and bug-finding efficiency on the other hand. This paper presents Fray, a platform for performing push-button concurrency testing of data-race-free JVM programs. The key insight behind Fray is that effective controlled concurrency testing requires orchestrating thread interleavings without replacing existing concurrency primitives, while encoding their semantics for faithfully expressing the set of all possible…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNetwork Packet Processing and Optimization · Parallel Computing and Optimization Techniques · Algorithms and Data Compression
