© 2009-2023 Strange Loop | Privacy Policy

We have recently shown that event-driven applications such as Web pages and Android applications are susceptible to concurrency errors. Perhaps counter-intuitively, these races occur despite the fact that the application often runs in a single thread. Such races are subtle, hard to detect yet may cause serious damage: JavaScript crashes, lost e-mails, broken UIs, broken analytics, etc.
In this talk, I propose to discuss EventRacer (http://www.eventracer.org/), a powerful new open-source analysis system developed at the Software Reliability Lab at ETH Zurich, that finds harmful concurrency errors in event-driven applications such as web pages and Android applications. I will illustrate how these concurrency errors can occur in real-world applications as well as the key analysis mechanisms behind EventRacer:
a scalable algorithm that uses graph connectivity based on chain decomposition. This algorithm significantly outperforms existing state-of-the-art detectors in both space and time (often by a factor of 100).
uncovered races, a special class of races that are not affected by user-written ad-hoc synchronization. Uncovered races are key to reducing the number of false positives reported by the analysis.
a practical set of patterns which further allow us to reduce the false positives and make the tool practical.
Finally, I will demo the system on real world applications (e.g. Google Maps, open-source Android apps) and discuss various future directions including extending the system, new UI navigation, statistical classification of reports, and others.
We believe that EventRacer can be a valuable tool in the life of everyday web and Android developers.
Pavol Bielik is a PhD student at the Software Reliability Lab at ETH Zurich. He is passionate about mobile technologies and competed at the University Mobile Challenge World Finals hosted at GSMA Mobile World Congress'14. He developed EventRacer for Android - an end-to-end race detection tool for Android applications that discovers concurrency bugs. His interests include program analysis, machine learning and parallel and high performance computing.