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

Lingwei Cao

dblp:167/7866 · DBLP profile ↗
← Back
5ranked-venue papers
0as first author
0since 2021 · last 2018
—ORCID · none

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

Software engineering, systems software and programming languages · 4Computer networks · 1

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
4 papers
Concurrent programming · 74% Debugging and program repair · 15% Program analysis · 11%

Topics — the 7 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
concurrency bugs
0.632017
A deployable sampling strategy for data race detection · SIGSOFT FSE 2016
Effective and precise dynamic detection of hidden races for Java programs · ESEC/SIGSOFT FSE 2015
Adaptively generating high quality fixes for atomicity violations · ESEC/SIGSOFT FSE 2017
Concurrent programming › concurrency bug detection
data race detection
0.522016
A deployable sampling strategy for data race detection · SIGSOFT FSE 2016
Effective and precise dynamic detection of hidden races for Java programs · ESEC/SIGSOFT FSE 2015
Debugging and program repair
automated program repair
0.312017
Adaptively generating high quality fixes for atomicity violations · ESEC/SIGSOFT FSE 2017
Program analysis
dynamic analysis
0.122016
A deployable sampling strategy for data race detection · SIGSOFT FSE 2016
Effective and precise dynamic detection of hidden races for Java programs · ESEC/SIGSOFT FSE 2015
Concurrent programming › concurrency bugs
atomicity violation
0.112017
Adaptively generating high quality fixes for atomicity violations · ESEC/SIGSOFT FSE 2017
Concurrent programming › concurrency bug detection › data race detection
sampling-based race detection
0.112016
A deployable sampling strategy for data race detection · SIGSOFT FSE 2016
Program analysis › dynamic analysis
happens-before analysis
0.112015
Effective and precise dynamic detection of hidden races for Java programs · ESEC/SIGSOFT FSE 2015

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

lock analysis · 0.3gate lock insertion · 0.3hardware-based sampling · 0.2dynamic analysis · 0.2clock races · 0.2randomized scheduling · 0.2may-trigger relation analysis · 0.2
YearPublicationVenuePosition
2018 Inferring implicit social ties in mobile social networks
abstract
Mobile social networks provide a platform to collect users' mobility information via mobile devices, and foster many location-aware services, which enable us to infer mobile users' implicit social ties from their mobility information. Some researches have focused on identifying social ties from users' co-occurrences. However, they fail to consider that users meet at different times and places indicates different social tie strength. Furthermore, statistics show that most users with social ties meet with each other few times and even never meet in geography, making social tie inference more challenging. In this paper, we propose a unified framework to infer implicit social ties. Specifically, we explore different aspects of social ties on causing users' co-occurrences, such as location popularity, co-occurrence diversity, and users' mobility behaviors, and further incorporate them to capture the spatial-temporal dynamics for accurately distinguishing social ties from coincidences. For the case of few or no co-occurrences, we build three types of networks: location network, user-location cross network and incomplete user network. Then, a mutual impact factor graph model is proposed to infer missing social ties in the incomplete user network by transferring knowledge extracted from given location and user-location cross network. Experiments conducted on datasets from a real mobile social network show not only the superiority of distinguishing social ties from coincidences but also validate the predictability of social ties although mobile users have few interactions in the physical world.
Ting Pi, Lingwei Cao, Zhili Ye
WCNC2
2017 Adaptively generating high quality fixes for atomicity violations
abstract
It is difficult to fix atomicity violations correctly. Existing gate lock algorithm (GLA) simply inserts gate locks to serialize exe-cutions, which may introduce performance bugs and deadlocks. Synthesized context-aware gate locks (by Grail) require complex source code synthesis. We propose Fixer to adaptively fix ato-micity violations. It firstly analyses the lock acquisitions of an atomicity violation. Then it either adjusts the existing lock scope or inserts a gate lock. The former addresses cases where some locks are used but fail to provide atomic accesses. For the latter, it infers the visibility (being global or a field of a class/struct) of the gate lock such that the lock only protects related accesses. For both cases, Fixer further eliminates new lock orders to avoid introducing deadlocks. Of course, Fixer can produce both kinds of fixes on atomicity violations with locks. The experi-mental results on 15 previously used atomicity violations show that: Fixer correctly fixed all 15 atomicity violations without introducing deadlocks. However, GLA and Grail both intro-duced 5 deadlocks. HFix (that only targets on fixing certain types of atomicity violations) only fixed 2 atomicity violations and introduced 4 deadlocks. Fixer also provides an alternative way to insert gate locks (by inserting gate locks with proper visibility) considering fix acceptance.
Yan Cai 0001, Lingwei Cao, Jing Zhao 0016
ESEC/SIGSOFT FSE2
2016 Fixing deadlocks via lock pre-acquisitions
abstract
Manual deadlock fixing is error-prone and time-consuming. Existing generic approach (GA) simply inserts gate locks to fix deadlocks by serializing executions, which could introduce various new deadlocks and incur high runtime overhead. We propose a novel approach DFixer to fix deadlocks without introducing any new deadlocks by design. DFixer only selects one thread of a deadlock to pre-acquire a lock w together with another lock h, where before fixing, the deadlock occurs when the thread holds lock h and waits for lock w. As such, DFixer eliminates a hold-and-wait necessary condition, preventing the deadlock from occurring. The thread performing pre-acquisition is carefully selected such that no other synchronization exists in between the two original acquisitions. Otherwise, DFixer further introduces a context-aware conditional protected by above lock w to guarantee the correctness of DFixer. The evaluation is on 20 deadlocks, including 17 from widely-used real-world C/C++ programs. It shows that DFixer successfully fixed all deadlocks. Whereas GA introduced 9 new deadlocks; a latest work Grail failed to fix 8 deadlocks and introduced 3 new deadlocks on others. On average, DFixer incurred only 2.1% overhead, where GA and Grail incurred 15.8% and 11.5% overhead, respectively.
Yan Cai 0001, Lingwei Cao
ICSE2
2016 A deployable sampling strategy for data race detection
abstract
Dynamic data race detection incurs heavy runtime overheads. Recently, many sampling techniques have been proposed to detect data races. However, some sampling techniques (e.g., Pacer) are based on traditional happens-before relation and incur a large basic overhead. Others utilize hardware to reduce their sampling overhead (e.g., DataCollider) and they, however, detect a race only when the race really occurs by delaying program executions. In this paper, we study the limitations of existing techniques and propose a new data race definition, named as Clock Races, for low overhead sampling purpose. The innovation of clock races is that the detection of them does not rely on concrete locks and also avoids heavy basic overhead from tracking happens-before relation. We further propose CRSampler (Clock Race Sampler) to detect clock races via hardware based sampling without directly delaying program executions, to further reduce runtime overhead. We evaluated CRSampler on Dacapo benchmarks. The results show that CRSampler incurred less than 5% overhead on average at 1% sampling rate. Whereas, Pacer and DataCollider incurred larger than 25% and 96% overhead, respectively. Besides, at the same sampling rate, CRSampler detected significantly more data races than that by Pacer and DataCollider.
Yan Cai 0001, Jian Zhang 0016, Lingwei Cao, Jian Liu 0008
SIGSOFT FSE3
2015 Effective and precise dynamic detection of hidden races for Java programs
abstract
Happens-before relation is widely used to detect data races dynami-cally. However, it could easily hide many data races as it is inter-leaving sensitive. Existing techniques based on randomized sched-uling are ineffective on detecting these hidden races. In this paper, we propose DrFinder, an effective and precise dynamic technique to detect hidden races. Given an execution, DrFinder firstly analyz-es the lock acquisitions in it and collects a set of "may-trigger" relations. Each may-trigger relation consists of a method and a type of a Java object. It indicates that, during execution, the method may directly or indirectly acquire a lock of the type. In the subsequent executions of the same program, DrFinder actively schedules the execution according to the set of collected may-trigger relations. It aims to reverse the set of happens-before relation that may exist in the previous executions so as to expose those hidden races. To effectively detect hidden races in each execution, DrFinder also collects a new set of may-trigger relation during its scheduling, which is used in its next scheduling. Our experiment on a suite of real-world Java multithreaded programs shows that DrFinder is effective to detect 89 new data races in 10 runs. Many of these races could not be detected by existing techniques (i.e., FastTrack, ConTest, and PCT) even in 100 runs.
Yan Cai 0001, Lingwei Cao
ESEC/SIGSOFT FSE2