A race condition is a phenomenon wherein the output of an electronic device or computer process (thread) depends on the relative timing of events outside the control of the process or device. A deadlock is a state in which multiple computing processes that share a common resource are stalled due to the processes mutually locking each other out of access to the resource. Deadlocks and race conditions are difficult bugs to detect, or even reproduce for debugging.

This disclosure presents techniques that detect deadlocks and race conditions using machine-learning models to analyze the control flow graph of a program. Predictions of potential race or deadlock conditions are accompanied by justifications, e.g., potential scenarios that cause a race conditions or deadlock to arise. The classifying and generalizing abilities of machinelearning models are applied such that these difficult to detect bugs are caught at design stage, most advantageously for large code bases.

Creative Commons License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.