2010
DOI: 10.1007/978-3-642-11503-5_11
View full text
|
Sign up to set email alerts
|

Abstract: Abstract. We address the problem of detecting some commonly occurring kinds of race conditions in Erlang programs using static analysis. Our analysis is completely automatic, fast and scalable, and avoids false alarms by taking language characteristics into account. We have integrated our analysis in dialyzer, a commonly used tool for detecting software defects in Erlang programs which is part of Erlang/OTP, and evaluate its effectiveness and performance on a suite of widely used industrial and open source pro… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
20
0
1

Year Published

2012
2012
2018
2018

Publication Types

Select...
2
1
1

Relationship

0
4

Authors

Journals

citations
Cited by 17 publications
(21 citation statements)
references
References 17 publications
(18 reference statements)
0
20
0
1
Order By: Relevance
“…In particular, the analysis of the defect database revealed a remarkable set of issues that could be detected by static code analysis. So issues of the following categories can be detected by employing different static analysis techniques: (1) naming conventions, (2) program complexity, (3) bad code smells, (4) incompatible configuration settings, (5) problematic task interleaving and race conditions, (6) possible performance problems, and (7) dynamic statement dependencies. In the following we illustrate those issues and discuss the solution methods required to detect them.…”
Section: Common Issues and Solution Methodsmentioning
confidence: 99%
“…Since these timing conditions are typically hard to reproduce, the resulting data races are often not detected in software testing. Therefore, revealing data races with static code analysis has received much attention and resulted in several specialized tools like Chord [24], Dialyzer [6] and RacerX [11].…”
Section: Static Code Analysismentioning
confidence: 99%
“…This condition is similar to traditional deadlocks known from thread-based programs. We base the terminology on the work of [15] in Erlang concurrency bugs.…”
Section: Lack Of Progress Issuesmentioning
confidence: 99%
“…Analysing Erlang programs for concurrency bugs is extremely cumbersome: while in theory a data race free actor-based language, the runtime's scheduler and global data dictionary (i.e. a kind of table-based memory heavily used in Erlang software) introduce various possibilities for race conditions in real world Erlang programs [CS10]. Thus, understanding Erlang's semantics is a crucial task for programmers, language designers, and runtime developers-i.e.…”
Section: Models Beyondmentioning
confidence: 99%
“…Modelling asynchronous Erlang programs as CCS or CSP, which presume synchronous communication, is impractical because it requires the explicit modelling of associated buffer and carrier processes [7]. Several static source code analysis approaches have been devised to detect deadlocks [8], [9], however these can be highly inaccurate. More recently, several testing approaches have emerged such as PULSE [10] and Concuerror [11], however these can only be used to reason about the executed program behaviour (i.e.…”
Section: Motivation: Communication Errorsmentioning
confidence: 99%