Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Cristian Zamfir

dblp:44/6654 · DBLP profile ↗
← Back
12ranked-venue papers
5as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 3 first-authorSystems, architecture and hardware · 5 · 2 first-authorSecurity and privacy · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
6 papers
Concurrent programming · 64% Program analysis · 26% Debugging and program repair · 6%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
High-performance computing · 60% Distributed systems · 40%

Topics — the 13 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › concurrency bug detection
data race detection
0.422015
Automated Classification of Data Races Under Both Strong and Weak Memory Models · ACM Trans. Program. Lang. Syst. 2015
RaceMob: crowdsourced data race detection · SOSP 2013
Program analysis
symbolic execution
0.222011
Parallel symbolic execution for automated real-world software testing · EuroSys 2011
Execution synthesis: a technique for automated software debugging · EuroSys 2010
Concurrent programming › concurrency bugs
data race classification
0.212015
Automated Classification of Data Races Under Both Strong and Weak Memory Models · ACM Trans. Program. Lang. Syst. 2015
Concurrent programming
concurrency bugs
0.222013
RaceMob: crowdsourced data race detection · SOSP 2013
Execution synthesis: a technique for automated software debugging · EuroSys 2010
Program analysis
dynamic analysis
0.232015
Automated Classification of Data Races Under Both Strong and Weak Memory Models · ACM Trans. Program. Lang. Syst. 2015
RaceMob: crowdsourced data race detection · SOSP 2013
Data races vs. data race bugs: telling the difference with portend · ASPLOS 2012
Concurrent programming
concurrency bug detection
0.112012
Data races vs. data race bugs: telling the difference with portend · ASPLOS 2012
Concurrent programming › concurrency bugs
data races
0.112012
Data races vs. data race bugs: telling the difference with portend · ASPLOS 2012
Program analysis › symbolic execution
parallel symbolic execution
0.112011
Parallel symbolic execution for automated real-world software testing · EuroSys 2011
Debugging and program repair
automated debugging
0.112010
Execution synthesis: a technique for automated software debugging · EuroSys 2010
Concurrent programming › concurrency bugs
concurrency bug reproduction
0.112010
Execution synthesis: a technique for automated software debugging · EuroSys 2010
Concurrent programming
synchronization
0.112008
Deadlock Immunity: Enabling Systems to Defend Against Deadlocks · OSDI 2008
High-performance computing
cluster computing
0.012011
Parallel symbolic execution for automated real-world software testing · EuroSys 2011
Distributed systems
fault tolerance
0.012008
Deadlock Immunity: Enabling Systems to Defend Against Deadlocks · OSDI 2008

Methods — techniques the papers use, named apart from their topics

symbolic execution · 0.6POSIX environment modeling · 0.2dynamic analysis · 0.2dynamic race detection · 0.2crowdsourced detection · 0.2symbolic comparison · 0.1multi-schedule analysis · 0.1multi-path analysis · 0.1static analysis · 0.1
YearPublicationVenuePosition
2015 Automated Classification of Data Races Under Both Strong and Weak Memory Models
abstract
Data races are one of the main causes of concurrency problems in multithreaded programs. Whether all data races are bad, or some are harmful and others are harmless, is still the subject of vigorous scientific debate [Narayanasamy et al. 2007; Boehm 2012]. What is clear, however, is that today's code has many data races [Kasikci et al. 2012; Jin et al. 2012; Erickson et al. 2010], and fixing data races without introducing bugs is time consuming [Godefroid and Nagappan 2008]. Therefore, it is important to efficiently identify data races in code and understand their consequences to prioritize their resolution. We present Portend + , a tool that not only detects races but also automatically classifies them based on their potential consequences: Could they lead to crashes or hangs? Could their effects be visible outside the program? Do they appear to be harmless? How do their effects change under weak memory models? Our proposed technique achieves high accuracy by efficiently analyzing multiple paths and multiple thread schedules in combination, and by performing symbolic comparison between program outputs. We ran Portend + on seven real-world applications: it detected 93 true data races and correctly classified 92 of them, with no human effort. Six of them were harmful races. Portend + 's classification accuracy is up to 89% higher than that of existing tools, and it produces easy-to-understand evidence of the consequences of “harmful” races, thus both proving their harmfulness and making debugging easier. We envision Portend + being used for testing and debugging, as well as for automatically triaging bug reports.
Baris Kasikci, Cristian Zamfir, George Candea
ACM Trans. Program. Lang. Syst.2
2013 Automating the debugging of datacenter applications with ADDA
abstract
Debugging data-intensive distributed applications running in datacenters is complex and time-consuming because developers do not have practical ways of deterministically replaying failed executions. The reason why building such tools is hard is that non-determinism that may be tolerable on a single node is exacerbated in large clusters of interacting nodes, and datacenter applications produce terabytes of intermediate data exchanged by nodes, thus making full input recording infeasible. We present ADDA, a replay-debugging system for datacenters that has lower recording and storage overhead than existing systems. ADDA is based on two techniques: First, ADDA provides control plane determinism, leveraging our observation that many typical datacenter applications consist of a separate “control plane” and “data plane”, and most bugs reside in the former. Second, ADDA does not record “data plane” inputs, instead it synthesizes them during replay, starting from the application's external inputs, which are typically persisted in append-only storage for reasons unrelated to debugging. We evaluate ADDA and show that it deterministically replays real-world failures in Hypertable and Memcached.
Cristian Zamfir, Gautam Altekar, Ion Stoica
DSN1
2013 Automated Debugging for Arbitrarily Long Executions
Cristian Zamfir, Baris Kasikci, Johannes Kinder, Edouard Bugnion, George Candea
HotOS1
2013 Reconstructing Core Dumps
abstract
When a software failure occurs in the field, it is often difficult to reproduce. Guided by a memory dump at the moment of failure (a “core dump”), our RECORE test case generator searches for a series of events that precisely reconstruct the failure from primitive data. Applied on seven non-trivial Java bugs, RECORE reconstructs the exact failure in five cases without any runtime overhead in production code.
Jeremias Rößler, Andreas Zeller, Gordon Fraser 0001, Cristian Zamfir, George Candea
ICST4
2013 RaceMob: crowdsourced data race detection
abstract
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. To avoid the introduction of such bugs, system developers need discipline and good data race detectors; today, even if they have the former, they lack the latter.
Baris Kasikci, Cristian Zamfir, George Candea
SOSP2
2012 Data races vs. data race bugs: telling the difference with portend
abstract
Even though most data races are harmless, the harmful ones are at the heart of some of the worst concurrency bugs. Alas, spotting just the harmful data races in programs is like finding a needle in a haystack: 76%-90% of the true data races reported by state-of-the-art race detectors turn out to be harmless [45]. We present Portend, a tool that not only detects races but also automatically classifies them based on their potential consequences: Could they lead to crashes or hangs? Could their effects be visible outside the program? Are they harmless? Our proposed technique achieves high accuracy by efficiently analyzing multiple paths and multiple thread schedules in combination, and by performing symbolic comparison between program outputs.
Baris Kasikci, Cristian Zamfir, George Candea
ASPLOS2
2011 Parallel symbolic execution for automated real-world software testing
abstract
This paper introduces Cloud9, a platform for automated testing of real-world software. Our main contribution is the scalable parallelization of symbolic execution on clusters of commodity hardware, to help cope with path explosion. Cloud9 provides a systematic interface for writing "symbolic tests" that concisely specify entire families of inputs and behaviors to be tested, thus improving testing productivity. Cloud9 can handle not only single-threaded programs but also multi-threaded and distributed systems. It includes a new symbolic environment model that is the first to support all major aspects of the POSIX interface, such as processes, threads, synchronization, networking, IPC, and file I/O. We show that Cloud9 can automatically test real systems, like memcached, Apache httpd, lighttpd, the Python interpreter, rsync, and curl. We show how Cloud9 can use existing test suites to generate new test cases that capture untested corner cases (e.g., network stream fragmentation). Cloud9 can also diagnose incomplete bug fixes by analyzing the difference between buggy paths before and after a patch.
Stefan Bucur, Vlad Ureche, Cristian Zamfir, George Candea
EuroSys3
2011 Debug Determinism: The Sweet Spot for Replay-Based Debugging
Cristian Zamfir, Gautam Altekar, George Candea
HotOS1
2010 Automated software testing as a service
abstract
This paper makes the case for TaaS--automated software testing as a cloud-based service. We present three kinds of TaaS: a "programmer's sidekick" enabling developers to thoroughly and promptly test their code with minimal upfront resource investment; a "home edition" on-demand testing service for consumers to verify the software they are about to install on their PC or mobile device; and a public "certification service," akin to Underwriters Labs, that independently assesses the reliability, safety, and security of software.
George Candea, Stefan Bucur, Cristian Zamfir
SoCC3
2010 Execution synthesis: a technique for automated software debugging
abstract
Debugging real systems is hard, requires deep knowledge of the code, and is time-consuming. Bug reports rarely provide sufficient information, thus forcing developers to turn into detectives searching for an explanation of how the program could have arrived at the reported failure point. Execution synthesis is a technique for automating this detective work: given a program and a bug report, it automatically produces an execution of the program that leads to the reported bug symptoms. Using a combination of static analysis and symbolic execution, it "synthesizes" a thread schedule and various required program inputs that cause the bug to manifest. The synthesized execution can be played back deterministically in a regular debugger, like gdb. This is particularly useful in debugging concurrency bugs. Our technique requires no runtime tracing or program modifications, thus incurring no runtime overhead and being practical for use in production systems. We evaluate ESD – a debugger based on execution synthesis – on popular software (e.g., the SQLite database, ghttpd Web server, HawkNL network library, UNIX utilities): starting from mere bug reports, ESD reproduces on its own several real concurrency and memory safety bugs in less than three minutes.
Cristian Zamfir, George Candea
EuroSys1
2010 Low-Overhead Bug Fingerprinting for Fast Debugging
Cristian Zamfir, George Candea
RV1
2008 Deadlock Immunity: Enabling Systems to Defend Against Deadlocks
Horatiu Jula, Daniel M. Tralamazza, Cristian Zamfir, George Candea
OSDI3