Category: Data, RabbitMQ, github, bitbucket

This post discusses the types of concurrency bugs Amazon CodeGuru detects and how developers can fix them. This is because triggering concurrency bugs is timing dependent: threads need to execute instructions in parallel in a particular order for the program to exhibit the buggy behavior (we provide examples later in this post).

CodeGuru detects four types of concurrency bugs: In the following sections, we give real-world examples of bugs from each of the four bug types.

After the fix, methodA() looks like the following code: This is the type of fix recommended by CodeGuru in its messages for atomicity violation detections.

The concurrency bug detectors in CodeGuru found previously unknown concurrency bugs in 22 mature and widely used Amazon projects, 6 open-source projects , and 18 internal Amazon projects.

Related Articles