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

Guangpu Li

dblp:198/2457 · DBLP profile ↗
← Back
5ranked-venue papers
3as first author
1since 2021 · last 2021
0000-0003-4356-9988ORCID · corroborated

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

Software engineering, systems software and programming languages · 5 · 3 first-author · 1 since 2021Systems, architecture and hardware · 3 · 1 first-author · 1 since 2021

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
5 papers
Concurrent programming · 55% Program analysis · 27% Debugging and program repair · 15%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Distributed systems · 87% Cloud and datacenter computing · 13%

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

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency bug detection
1.032019
Efficient scalable thread-safety-violation detection: finding thousands of concurrency bugs during testing · SOSP 2019
FCatch: Automatically Detecting Time-of-fault Bugs in Cloud Systems · ASPLOS 2018
DCatch: Automatically Detecting Distributed Concurrency Bugs in Cloud Systems · ASPLOS 2017
Distributed systems
fault tolerance
0.722019
DFix: automatically fixing timing bugs in distributed systems · PLDI 2019
FCatch: Automatically Detecting Time-of-fault Bugs in Cloud Systems · ASPLOS 2018
Program analysis
dynamic analysis
0.512021
SherLock: unsupervised synchronization-operation inference · ASPLOS 2021
Concurrent programming
synchronization
0.512021
SherLock: unsupervised synchronization-operation inference · ASPLOS 2021
Debugging and program repair
automated program repair
0.412019
DFix: automatically fixing timing bugs in distributed systems · PLDI 2019
Concurrent programming
concurrency bugs
0.412019
Efficient scalable thread-safety-violation detection: finding thousands of concurrency bugs during testing · SOSP 2019
Program analysis › dynamic analysis
happens-before analysis
0.312017
DCatch: Automatically Detecting Distributed Concurrency Bugs in Cloud Systems · ASPLOS 2017
Distributed systems
bug detection
0.312017
DCatch: Automatically Detecting Distributed Concurrency Bugs in Cloud Systems · ASPLOS 2017
Distributed systems › concurrency
distributed concurrency bugs
0.312017
DCatch: Automatically Detecting Distributed Concurrency Bugs in Cloud Systems · ASPLOS 2017
Software maintenance and evolution › issue tracking
bug report processing
0.112019
DFix: automatically fixing timing bugs in distributed systems · PLDI 2019
Debugging and program repair
fault localization
0.112019
Efficient scalable thread-safety-violation detection: finding thousands of concurrency bugs during testing · SOSP 2019
Program analysis
static analysis
0.112019
DFix: automatically fixing timing bugs in distributed systems · PLDI 2019
Cloud and datacenter computing › quality of service
cloud service availability
0.112018
FCatch: Automatically Detecting Time-of-fault Bugs in Cloud Systems · ASPLOS 2018
Cloud and datacenter computing › cloud deployment model
distributed cloud
0.112017
DCatch: Automatically Detecting Distributed Concurrency Bugs in Cloud Systems · ASPLOS 2017

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

static analysis · 0.8patch generation · 0.8fault injection · 0.7concurrency bug modeling · 0.7trace analysis · 0.6runtime tracing · 0.6happens-before rules · 0.6unsupervised inference · 0.5delay injection · 0.5dynamic analysis · 0.4
YearPublicationVenuePosition
2021 SherLock: unsupervised synchronization-operation inference
abstract
Synchronizations are fundamental to the correctness and performance of concurrent software. Unfortunately, correctly identifying all synchronizations has become extremely difficult in modern soft-ware systems due to the various types of synchronizations. Previous work either only infers specific type of synchronization by code analysis or relies on manual effort to annotate the synchronization. This paper proposes SherLock, a tool that uses unsupervised inference to identify synchronizations. SherLock leverages the fact that most synchronizations appear around the conflicting operations and form it into a linear system with a set of synchronization proper-ties and hypotheses. To collect enough observations, SherLock runs the unit tests a small number of times with feedback-based delay injection. We applied SherLock on 8 C# open-source applications. Without any prior knowledge, SherLock inferred 122 unique synchronizations, with few false positives. These inferred synchronizations cover a wide variety of types, including lock operations, fork-join operations, asynchronous operations, framework synchronization, and custom synchronization.
Guangpu Li, Dongjie Chen, Shan Lu 0001, Madan Musuvathi, Suman Nath
ASPLOS1
2019 DFix: automatically fixing timing bugs in distributed systems
abstract
Distributed systems nowadays are the backbone of computing society, and are expected to have high availability. Unfortunately, distributed timing bugs, a type of bugs triggered by non-deterministic timing of messages and node crashes, widely exist. They lead to many production-run failures, and are difficult to reason about and patch. Although recently proposed techniques can automatically detect these bugs, how to automatically and correctly fix them still remains as an open problem. This paper presents DFix, a tool that automatically processes distributed timing bug reports, statically analyzes the buggy system, and produces patches. Our evaluation shows that DFix is effective in fixing real-world distributed timing bugs.
Guangpu Li, Xianglan Chen, Haryadi S. Gunawi, Shan Lu 0001
PLDI1
2019 Efficient scalable thread-safety-violation detection: finding thousands of concurrency bugs during testing
abstract
Concurrency bugs are hard to find, reproduce, and debug. They often escape rigorous in-house testing, but result in large-scale outages in production. Existing concurrency-bug detection techniques unfortunately cannot be part of industry's integrated build and test environment due to some open challenges: how to handle code developed by thousands of engineering teams that uses a wide variety of synchronization mechanisms, how to report little/no false positives, and how to avoid excessive testing resource consumption.
Guangpu Li, Shan Lu 0001, Madan Musuvathi, Suman Nath, Rohan Padhye
SOSP1
2018 FCatch: Automatically Detecting Time-of-fault Bugs in Cloud Systems
abstract
It is crucial for distributed systems to achieve high availability. Unfortunately, this is challenging given the common component failures (i.e., faults). Developers often cannot anticipate all the timing conditions and system states under which a fault might occur, and introduce time-of-fault (TOF) bugs that only manifest when a node crashes or a message drops at a special moment. Although challenging, detecting TOF bugs is fundamental to developing highly available distributed systems. Unlike previous work that relies on fault injection to expose TOF bugs, this paper carefully models TOF bugs as a new type of concurrency bugs, and develops FCatch to automatically predict TOF bugs by observing correct execution. Evaluation on representative cloud systems shows that FCatch is effective, accurately finding severe TOF bugs.
Guangpu Li, Shan Lu 0001, Chen Tian 0002
ASPLOS3
2017 DCatch: Automatically Detecting Distributed Concurrency Bugs in Cloud Systems
abstract
In big data and cloud computing era, reliability of distributed systems is extremely important. Unfortunately, distributed concurrency bugs, referred to as DCbugs, widely exist. They hide in the large state space of distributed cloud systems and manifest non-deterministically depending on the timing of distributed computation and communication. Effective techniques to detect DCbugs are desired. This paper presents a pilot solution, DCatch, in the world of DCbug detection. DCatch predicts DCbugs by analyzing correct execution of distributed systems. To build DCatch, we design a set of happens-before rules that model a wide variety of communication and concurrency mechanisms in real-world distributed cloud systems. We then build runtime tracing and trace analysis tools to effectively identify concurrent conflicting memory accesses in these systems. Finally, we design tools to help prune false positives and trigger DCbugs. We have evaluated DCatch on four representative open-source distributed cloud systems, Cassandra, Hadoop MapReduce, HBase, and ZooKeeper. By monitoring correct execution of seven workloads on these systems, DCatch reports 32 DCbugs, with 20 of them being truly harmful.
Guangpu Li, Jeffrey F. Lukman, Shan Lu 0001, Haryadi S. Gunawi, Chen Tian 0002
ASPLOS2