Race detection for event-driven mobile applications

CH Hsiao, J Yu, S Narayanasamy, Z Kong… - ACM SIGPLAN …, 2014 - dl.acm.org
CH Hsiao, J Yu, S Narayanasamy, Z Kong, CL Pereira, GA Pokam, PM Chen, J Flinn
ACM SIGPLAN Notices, 2014dl.acm.org
Mobile systems commonly support an event-based model of concurrent programming. This
model, used in popular platforms such as Android, naturally supports mobile devices that
have a rich array of sensors and user input modalities. Unfortunately, most existing tools for
detecting concurrency errors of parallel programs focus on a thread-based model of
concurrency. If one applies such tools directly to an event-based program, they work poorly
because they infer false dependencies between unrelated events handled sequentially by …
Mobile systems commonly support an event-based model of concurrent programming. This model, used in popular platforms such as Android, naturally supports mobile devices that have a rich array of sensors and user input modalities. Unfortunately, most existing tools for detecting concurrency errors of parallel programs focus on a thread-based model of concurrency. If one applies such tools directly to an event-based program, they work poorly because they infer false dependencies between unrelated events handled sequentially by the same thread.
In this paper we present a race detection tool named CAFA for event-driven mobile systems. CAFA uses the causality model that we have developed for the Android event-driven system. A novel contribution of our model is that it accounts for the causal order due to the event queues, which are not accounted for in past data race detectors. Detecting races based on low-level races between memory accesses leads to a large number of false positives. CAFA overcomes this problem by checking for races between high-level operations. We discuss our experience in using CAFA for finding and understanding a number of known and unknown harmful races in open-source Android applications.
ACM Digital Library