Automated atomicity-violation fixing
Fixing software bugs has always been an important and time-consuming process in software
development. Fixing concurrency bugs has become especially critical in the multicore era …
development. Fixing concurrency bugs has become especially critical in the multicore era …
TaxDC: A taxonomy of non-deterministic concurrency bugs in datacenter distributed systems
We present TaxDC, the largest and most comprehensive taxonomy of non-deterministic
concurrency bugs in distributed systems. We study 104 distributed concurrency (DC) bugs …
concurrency bugs in distributed systems. We study 104 distributed concurrency (DC) bugs …
Carat: Collaborative energy diagnosis for mobile devices
We aim to detect and diagnose energy anomalies, abnormally heavy battery use. This paper
describes a collaborative black-box method, and an implementation called Carat, for …
describes a collaborative black-box method, and an implementation called Carat, for …
Assisting developers of big data analytics applications when deploying on hadoop clouds
Big data analytics is the process of examining large amounts of data (big data) in an effort to
uncover hidden patterns or unknown correlations. Big Data Analytics Applications (BDA …
uncover hidden patterns or unknown correlations. Big Data Analytics Applications (BDA …
Automated {Concurrency-Bug} Fixing
Concurrency bugs are widespread in multithreaded programs. Fixing them is time-
consuming and error-prone. We present CFix, a system that automates the repair of …
consuming and error-prone. We present CFix, a system that automates the repair of …
{REPT}: Reverse debugging of failures in deployed software
Debugging software failures in deployed systems is important because they impact real
users and customers. However, debugging such failures is notoriously hard in practice …
users and customers. However, debugging such failures is notoriously hard in practice …
Understanding real-world concurrency bugs in go
Go is a statically-typed programming language that aims to provide a simple, efficient, and
safe way to build multi-threaded software. Since its creation in 2009, Go has matured and …
safe way to build multi-threaded software. Since its creation in 2009, Go has matured and …
Clap: Recording local executions to reproduce concurrency failures
We present CLAP, a new technique to reproduce concurrency bugs. CLAP has two key
steps. First, it logs thread local execution paths at runtime. Second, offline, it computes …
steps. First, it logs thread local execution paths at runtime. Second, offline, it computes …
Failure sketching: A technique for automated root cause diagnosis of in-production failures
Developers spend a lot of time searching for the root causes of software failures. For this,
they traditionally try to reproduce those failures, but unfortunately many failures are so hard …
they traditionally try to reproduce those failures, but unfortunately many failures are so hard …
RaceMob: Crowdsourced data race detection
Some of the worst concurrency problems in multi-threaded systems today are due to data
races---these bugs can have messy consequences, and they are hard to diagnose and fix …
races---these bugs can have messy consequences, and they are hard to diagnose and fix …