Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. EPFL thesis
  4. Techniques for Detection, Root Cause Diagnosis, and Classification of In-Production Concurrency Bugs
 
doctoral thesis

Techniques for Detection, Root Cause Diagnosis, and Classification of In-Production Concurrency Bugs

Kasikci, Baris Can Cengiz  
2015

Concurrency 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.
  • Files
  • Details
  • Metrics
Type
doctoral thesis
DOI
10.5075/epfl-thesis-6873
Author(s)
Kasikci, Baris Can Cengiz  
Advisors
Candea, George  
Jury

Prof. Willy Zwaenepoel (président) ; Prof. George Candea (directeur de thèse) ; Prof. Christos Kozyrakis, Prof. Emery Berger, Dr Madanlal Musuvathi (rapporteurs)

Date Issued

2015

Publisher

EPFL

Publisher place

Lausanne

Public defense year

2015-12-17

Thesis number

6873

Total of pages

173

Subjects

concurrency bugs

•

data race

•

atomicity violation

•

static analysis

•

dynamic analysis

EPFL units
DSLAB  
Faculty
IC  
School
IIF  
Doctoral School
EDIC  
Award

EDIC Patrick Denantes Memorial Prize

2016
Available on Infoscience
December 16, 2015
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/121736
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés