Automatic Error Fixing for High-Availability Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software components, especially web services, often fail to handle intermittent faults correctly due to unreliable networks, leading to high chances of encountering error-inducing inputs, which can cause program crashes and are not effectively managed by programmers.

Innovation Solution

The implementation of automatic error fixing techniques that involve obtaining output from a remote computer function, applying a fixer routine to the input arguments to produce new arguments, and using the output from these new arguments as the corresponding output from the original input, thereby preventing crashes and ensuring program continuity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If programmers manually handle faults in web services, then some error cases can be addressed, but the majority of error-inducing inputs cause program crashes due to incorrect fault handling

Engineering Contradiction:
Improvefault handling correctnessVSAvoidprogrammer burden
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system implements self-service by automatically detecting faults, generating candidate fixes, and applying corrections without human intervention. The automatic fault handler monitors program execution, identifies error-inducing inputs, and applies fixes from a generated repertoire of corrections, enabling the system to handle its own faults independently.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention introduces an intermediary component—the automatic fault handler—that sits between the web service and error-inducing inputs. This handler intercepts faults, processes them through a learned repertoire of fixes, and applies appropriate corrections, mediating between the unreliable network environment and the vulnerable program.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If retry mechanisms are used for network failures, then some intermittent faults can be recovered, but other error types such as division by zero or missing data cannot be handled

Engineering Contradiction:
Improverecovery from intermittent faultsVSAvoidhandling diverse error types
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system applies parameter changes by modifying input parameters to correct faults. The automatic fault handler generates and applies transformations such as changing null values to default values, correcting malformed inputs, adjusting numeric parameters, and modifying string inputs to resolve diverse error types including division by zero and missing data issues.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The invention achieves universality by creating a multi-functional fault handling system that can address multiple error types through a single unified mechanism. The learned repertoire of fixes encompasses various correction strategies that can handle network failures, division errors, missing data, and other fault types, making the system adaptable to diverse error conditions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If extensive fault handling code is implemented, then program reliability improves, but code complexity and maintenance difficulty increase

Engineering Contradiction:
Improveprogram availabilityVSAvoidfault handling code structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The invention extracts fault handling logic from the main program body into a separate automatic fault handler component. This extraction removes complex fault handling code from the core application logic, isolating it in a dedicated module that learns and applies fixes independently, thereby simplifying the overall program structure while maintaining high reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary action by pre-learning a repertoire of fixes from historical fault data before actual faults occur. This advance preparation creates a library of correction strategies that can be quickly applied when faults occur, eliminating the need for complex real-time decision-making code and simplifying the fault handling structure.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10691526B2Automatic error fixes for high-availability applications
Publication Date: 2020.06.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10691526B2 patent drawing
  • US10691526B2 patent drawing
  • US10691526B2 patent drawing

AI summary

Output is obtained from a remote computer function on a first set of arguments. Responsive to determining that the output exhibits an error, a fixer routine, other than a retry, is applied to the arguments to produce new arguments. Output is obtained from the remote computer function on the new arguments. In a case where the output from the remote computer function on the new arguments is acceptable, the output from the remote computer function on the new arguments is used as a corresponding output from the remote computer function on the first set of arguments. These steps can advantageously be carried out without modifying program code of the remote computer function and without access to the program code of the remote computer function; for example, by a wrapper which black-box wraps the remote computer function.