Automatic Bug Repro Capture for Query Optimizers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Reproducing bugs in complex software components like query optimizers is difficult and time-consuming due to the challenge of capturing necessary information in an unstable system state, often requiring significant manual effort and expertise.

Innovation Solution

An automatic capture mechanism that serializes input parameters, metadata, and execution environment information before an exception occurs, creating a self-contained, executable repro file that can recreate the problem without additional resource allocation, ensuring transactional consistency and portability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If manual effort is used to capture bug reproduction information, then completeness of information can be achieved, but time consumption and complexity increase significantly

Engineering Contradiction:
Improvecompleteness of bug informationVSAvoidtime to capture bug info
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent implements preliminary action by capturing and serializing bug reproduction information immediately when an exception occurs, before the system state becomes unstable or changes. The capture mechanism serializes the exception context, stack traces, and system state at the moment of failure, ensuring information completeness without requiring later manual collection efforts.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system performs self-service by automatically capturing, serializing, and storing bug reproduction information without human intervention. The exception handling mechanism automatically triggers the capture process, serializes relevant data structures, and stores them in a reproducible format, eliminating the need for manual information gathering while maintaining completeness.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If comprehensive system state information is captured after a crash, then diagnostic accuracy improves, but the system may be in an unstable state causing information loss

Engineering Contradiction:
Improvediagnostic accuracyVSAvoidsystem state stability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent applies preliminary action by capturing the system state at the exact moment an exception occurs, before any subsequent system changes or instability can affect the data. The capture mechanism serializes the exception context, thread states, and system configuration immediately when the error is detected, ensuring both diagnostic accuracy and reliability by avoiding post-crash state changes.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If detailed reproduction information is collected, then bug reproduction accuracy improves, but portability and ease of transfer decrease

Engineering Contradiction:
Improvebug reproduction accuracyVSAvoidportability of repro file
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent implements copying by creating a self-contained serialized representation of the bug reproduction environment. Instead of requiring the original system state or complex setup, the solution serializes all necessary information (exception context, stack traces, system configuration) into a portable file format that can be copied and transferred easily while maintaining complete reproduction accuracy.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system applies parameter changes by transforming the complex system state into a standardized serialized format with specific parameters (exception type, stack trace, system configuration). This transformation maintains all necessary information for accurate reproduction while making the data portable and easy to transfer through standard file operations.

Inventive Principle:
Principle #35Parameter changes

4Manufacturing precision

If manual expertise is required to capture repro information, then accuracy of capture improves, but productivity and speed of resolution decrease

Engineering Contradiction:
Improveaccuracy of information captureVSAvoidspeed of bug resolution
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent implements self-service by automating the entire information capture process. The exception handling mechanism automatically triggers serialization of bug reproduction information without requiring manual expertise. The system independently captures exception context, stack traces, and system state, maintaining accuracy while dramatically increasing productivity by eliminating manual intervention.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical system of manual information gathering with an automated software-based exception handling mechanism. Instead of requiring manual expertise to collect and analyze system state, the solution uses programmatic exception capture and serialization to automatically record all necessary information, maintaining accuracy while eliminating the time and expertise requirements of manual processes.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9081898B1Automatic capture of minimal portable executable bug repros
Publication Date: 2015.07.14 EMC IP HLDG CO LLC
  • US9081898B1 patent drawing
  • US9081898B1 patent drawing
  • US9081898B1 patent drawing

AI summary

A minimal portable executable bug repro contains the inputs to a query optimizer, metadata, statistics, process and thread specific information such as stack traces, and state at the time of a crash necessary to reproduce the problem. Objects register with a handler prior to use, and the handler pre-allocates sufficient buffer space to store each. Upon a crash, the handler requests each object to serialize itself into the pre-allocated space, and captures the relevant information in a transactionally consistent way. The executable file may be loaded onto a debugging system, and the execution sequence replayed to analyze the problem.