Universal Causality Graph for Concurrent Bug Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing predictive analysis methods for concurrent programs face scalability and precision issues due to their inability to handle a broad range of synchronization primitives and lack of exactness in detecting concurrency errors, particularly in programs using non-nested locks and wait/notify-style primitives.

Innovation Solution

The implementation of a Universal Causality Graph (UCG) that provides a unified happens-before model for concurrent programs, allowing for the static generation of all feasible interleavings that may lead to errors, thereby improving scalability and precision by considering all synchronization primitives and properties in a unified manner.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing predictive analysis methods use over-approximated modeling to detect potential violations, then they do not miss real errors, but they report bogus errors reducing precision

Engineering Contradiction:
Improveerror detection completenessVSAvoiderror detection precision
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent introduces a UCG-based static predictive analysis as an intermediary step between trace execution and symbolic checking. This intermediary generates a filtered set of potential violations by analyzing happens-before relations and synchronization constraints, thereby reducing bogus errors while maintaining completeness through subsequent symbolic verification

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the analysis parameters by transitioning from over-approximated modeling to a more precise happens-before based model. By using UCG to represent causality relations and filtering interleavings based on synchronization constraints, the method achieves better precision while maintaining reliability through the symbolic checking step

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If existing predictive analysis methods use under-approximated modeling to avoid bogus errors, then they improve precision, but they may miss some real errors reducing coverage

Engineering Contradiction:
Improveerror detection precisionVSAvoiderror detection completeness
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent merges under-approximated happens-before analysis with over-approximated symbolic checking in a unified framework. The UCG-based static analysis provides precise filtering while the symbolic checker ensures completeness by verifying all potential violations, thereby achieving both precision and reliability simultaneously

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If predictive analysis methods explore all possible interleavings to ensure complete error detection, then they achieve soundness and completeness, but they are not scalable to large programs

Engineering Contradiction:
Improveerror detection completenessVSAvoidanalysis scalability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and exploits synchronization constraints (locks, condition variables, barriers) from the program to filter out infeasible interleavings before symbolic checking. By taking out the causality analysis step using UCG, the method reduces the search space dramatically while maintaining completeness for the remaining potential violations

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary static predictive analysis using UCG to identify and filter potential violations before conducting the expensive symbolic checking. This preliminary action based on happens-before relations and synchronization constraints eliminates infeasible interleavings in advance, making the overall analysis scalable to large programs

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8769499B2Universal causality graphs for bug detection in concurrent programs
Publication Date: 2014.07.01 NEC CORP
  • US8769499B2 patent drawing
  • US8769499B2 patent drawing
  • US8769499B2 patent drawing

AI summary

A system and method for predictive analysis includes generating an execution trace on an instrumented version of source code for a multithreaded computer program. Interleavings which potentially lead to a violation in the program are statically generated by performing a static predictive analysis using a Universal Causality Graph (UCG) to generate alternative interleavings that might lead to an error. The UCG includes a unified happens-before model for the concurrent program and a property being analyzed. The interleavings are symbolically checked to determine errors in the program.