000214608 001__ 214608
000214608 005__ 20190509132550.0
000214608 0247_ $$2doi$$a10.5075/epfl-thesis-6873
000214608 02470 $$2urn$$aurn:nbn:ch:bel-epfl-thesis6873-6
000214608 02471 $$2nebis$$a10572199
000214608 037__ $$aTHESIS
000214608 041__ $$aeng
000214608 088__ $$a6873
000214608 245__ $$aTechniques for Detection, Root Cause Diagnosis, and Classification of In-Production Concurrency Bugs
000214608 269__ $$a2015
000214608 260__ $$bEPFL$$c2015$$aLausanne
000214608 300__ $$a173
000214608 336__ $$aTheses
000214608 502__ $$aProf. Willy Zwaenepoel (président) ; Prof. George Candea (directeur de thèse) ; Prof. Christos Kozyrakis, Prof. Emery Berger, Dr Madanlal Musuvathi (rapporteurs)
000214608 520__ $$aConcurrency bugs are at the heart of some of the worst bugs that
 plague software. Concurrency bugs slow down software development
 because it can take weeks or even months before developers
 can identify and fix them.
 In-production detection, root cause diagnosis, and classification of
 concurrency bugs is challenging. This is because these activities require
 heavyweight analyses such as exploring program paths and determining
 failing program inputs and schedules, all of which are not
 suited for software running in production.
 This dissertation develops practical techniques for the detection,
 root cause diagnosis, and classification of concurrency bugs for inproduction
 software. Furthermore, we develop ways for developers
 to better reason about concurrent programs. This dissertation builds
 upon the following principles:
 — The approach in this dissertation spans multiple layers of the
 system stack, because concurrency spans many layers of the
 system stack.
 — It performs most of the heavyweight analyses in-house and resorts
 to minimal in-production analysis in order to move the
 heavy lifting to where it is least disruptive.
 — It eschews custom hardware solutions that may be infeasible to
 implement in the real world.
 Relying on the aforementioned principles, this dissertation introduces:
 1. Techniques to automatically detect concurrency bugs (data races
 and atomicity violations) in-production by combining in-house
 static analysis and in-production dynamic analysis.
 2. A technique to automatically identify the root causes of in-production
 failures, with a particular emphasis on failures caused
 by concurrency bugs.
 3. A technique that given a data race, automatically classifies it
 based on its potential consequence, allowing developers to answer
 questions such as “can the data race cause a crash or a
 hang?”, or “does the data race have any observable effect?”.
 We build a toolchain that implements all the aforementioned techniques.
 We show that the tools we develop in this dissertation are
 effective, incur low runtime performance overhead, and have high
 accuracy and precision.
000214608 6531_ $$aconcurrency bugs
000214608 6531_ $$adata race
000214608 6531_ $$aatomicity violation
000214608 6531_ $$astatic analysis
000214608 6531_ $$adynamic analysis
000214608 700__ $$0244480$$g199829$$aKasikci, Baris Can Cengiz
000214608 720_2 $$aCandea, George$$edir.$$g172241$$0241982
000214608 8564_ $$uhttps://infoscience.epfl.ch/record/214608/files/EPFL_TH6873.pdf$$zn/a$$s1928732$$yn/a
000214608 909C0 $$xU11275$$0252225$$pDSLAB
000214608 909CO $$pthesis-bn2018$$pDOI$$pIC$$ooai:infoscience.tind.io:214608$$qDOI2$$qGLOBAL_SET$$pthesis
000214608 917Z8 $$x108898
000214608 917Z8 $$x108898
000214608 917Z8 $$x108898
000214608 917Z8 $$x108898
000214608 918__ $$dEDIC$$cIIF$$aIC
000214608 919__ $$aDSLAB
000214608 920__ $$b2015$$a2015-12-17
000214608 970__ $$a6873/THESES
000214608 973__ $$sPUBLISHED$$aEPFL
000214608 980__ $$aTHESIS