# US 9,436,590 B2 · Second failure data capture in co-operating multi-image systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,590 B2
- Document ID: US9436590B2
- Status: Granted
- Kind: B2
- Application number: 13/930,875
- Filed: 2013-06-28
- Published: 2014-02-13
- Granted: 2016-09-06
- Earliest claimed: 2012-08-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Richard Nigel Chamberlain; Howard J. Hellyer; Matthew Francis Peters; Adam John Pilkington
- Web page: https://patentgrep.com/patent/US9436590B2

## CPC

- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- G06F 11/0706: {the processing taking place on a specific hardware platform or in a specific software environment}
- G06F 11/0712: {in a virtual computing platform, e.g. logically partitioned systems}
- G06F 11/0715: {in a system implementing multitasking (multitasking per se G06F9/46)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/3636: {by tracing the execution of the program}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer system and computer program captures diagnostic trace information in a computer system having a plurality of software images. Information is received that is associated with a first failure in a first one of the plurality of software images. The received information is distributed to others of the plurality of software images. Further information is captured that is associated with a second failure in another one of the plurality of software images. The information associated with a first failure in a first one of said plurality of software images is combined with the information associated with a second failure in another of said plurality of software images, and the combined information is analyzed in order to determine a cause of the first failure.

## Claims

### Claim 1

A computer system comprising:
a processor; and
logic executing on the processor that enables the processor to:
check whether one or more of a plurality of software images is executing a same software as a first one of the plurality of software images;
capture trace diagnostic information associated with a first failure in a first one of the plurality of software images within a log file;
distribute information from the log file to others of the plurality of software images;
configure others of the plurality of software images to capture information associated with a second failure in another image of the plurality of software images;
combine the information associated with the first failure with the information associated with the second failure;
analyze the combined information in order to determine a cause of the first failure;
based on the cause of the first failure, identify one or more actions to prevent further failures; and
in response to starting at least one of the plurality of software images after a failure, increase a level of information that is captured for the at least one of the plurality of software images responsive to a subsequent failure.

### Claim 2 (depends on 1)

The computer system of claim 1, wherein:
each of the software images further comprises processes or threads;
the information received is associated with a first failure in a first one of the processes or threads;
the information distributed is distributed to others of the processes or threads; and
the information captured is associated with a second failure in another one of the processes or threads.

### Claim 3 (depends on 1)

The computer system of claim 1, further comprising at least one of a load balancer, a hypervisor, an operating system, monitoring software, and a peer-to-peer communication mechanism, which carries out the distributing process;
wherein distributing the information from the log file to others of the plurality of software images further comprises distributing a first portion of the information to first ones of the plurality of software images and distributes a second portion of the information to second ones of the plurality of software images.

### Claim 4 (depends on 1)

The computer system of claim 1, the logic further comprising logic that when executed by the processor that enables the processor to:
determine whether a same software component has failed in the first one and the another one of the plurality of software images; and
in response to determining the same software component has failed in the first one and the another one of the plurality of software images, capture a detailed trace diagnostic information for the software component in the another one of the plurality of software images.

### Claim 5 (depends on 1)

The computer system of claim 1, wherein the information associated with the first failure is used to configure others of the plurality of software images to capture an increased level of trace diagnostic information responsive to a failure.

### Claim 6 (depends on 5)

The computer system of claim 5, wherein the increased level of trace diagnostic information is captured by others of the plurality of software images responsive to a failure within a predetermined time period, the logic further comprising logic that when executed by the processor that enables the processor to:
in response to the predetermined time period expiring, revert a level of trace diagnostic information that is captured by others of the plurality of software images to a second predetermined level.

### Claim 7 (depends on 5)

The computer system of claim 5, wherein the increased level of trace diagnostic information is captured by others of the plurality of software images responsive to a failure within a predetermined time period, the logic further comprising logic that when executed by the processor that enables the processor to:
in response to the predetermined time period expiring, revert a level of trace diagnostic information that is captured by others of the plurality of software images to a level prior to the first failure.

### Claim 8 (depends on 5)

The computer system of claim 5, the logic further comprising logic that when executed by the processor that enables the processor to:
in response to a sufficient amount of trace diagnostic information being captured, revert the level of trace diagnostic information that is captured by others of the plurality of software images responsive to a failure to a level prior to the first failure.

### Claim 9 (depends on 5)

The computer system of claim 5, the logic further comprising logic that when executed by the processor that enables the processor to:
load balance the capturing of the trace diagnostic information across the plurality of software images, wherein each one of the plurality of software images captures trace diagnostic information for a particular one or more parts of a software stack.

### Claim 10 (depends on 5)

The computer system of claim 5, the logic further comprising logic that when executed by the processor that enables the processor to:
load balance the capturing of the trace diagnostic information across the plurality of software images, wherein each one of the plurality of software images captures a particular one or more parts of a particular subset of the detailed trace diagnostic information.

### Claim 11 (depends on 1)

The computer system of claim 1, wherein each of the plurality of software images has at least one of a non-identical software stack and a non-identical workload.

### Claim 12 (depends on 1)

The computer system of claim 1, wherein the cause of the failure is at least one of: a particular software component, a particular process signal, an input/output (I/O) error, and a memory shortage.

### Claim 13 (depends on 1)

The computer system of claim 1, the logic further comprising logic that when executed by the processor that enables the processor to:
in response to analyzing the first failure in the first one of the plurality of software images, analyze the information associated with the second failure based on findings associated with the analysis of the first failure in order to determine a cause of the second failure; and
based on the cause of the second failure, identify at least one action to prevent further failures.

### Claim 14

A non-transitory computer-readable storage device encoded with a computer-readable program for capturing diagnostic trace information, the computer-readable program for use in a computer system to enable the computer system to:
check whether one or more of a plurality of software images is executing a same software as a first one of the plurality of software images;
capture trace diagnostic information associated with a first failure in a first one of the plurality of software images within a log file;
distribute information from the log file to others of the plurality of software images;
configure others of the plurality of software images to capture information associated with a second failure in another image of the plurality of software images;
combine the information associated with the first failure with the information associated with the second failure;
analyze the combined information in order to determine a cause of the first failure;
based on the cause of the first failure, identify one or more actions to prevent further failures;
in response to starting at least one of the plurality of software images after a failure, increase a level of information that is captured for the at least one of the plurality of software images responsive to a subsequent failure;
determine whether a same software component has failed in the first one and the another one of the plurality of software images; and
in response to determining the same software component has failed in the first one and the another one of the plurality of software images, capture a detailed trace diagnostic information for the software component in the another one of the plurality of software images.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage device of claim 14, wherein:
each of the software images further comprises processes or threads;
the information received is associated with a first failure in a first one of the processes or threads;
the information distributed is distributed to others of the processes or threads; and
the information captured is associated with a second failure in another one of the processes or threads.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage device of claim 14, further comprising code for implementing at least one of a load balancer, a hypervisor, an operating system, monitoring software, and a peer-to-peer communication mechanism, which carries out the distributing process, wherein distributing the information from the log file to others of the plurality of software images further comprises distributing a first portion of the information to first ones of the plurality of software images and distribute a second portion of the information to second ones of the plurality of software images.

### Claim 17 (depends on 14)

The non-transitory computer-readable storage device of claim 14, wherein:
the information associated with the first failure is used to configure others of the plurality of software images to capture an increased level of trace diagnostic information responsive to a failure, and wherein the increased level of trace diagnostic information is captured by others of the plurality of software images responsive to a failure within a predetermined time period; and
the logic further comprises logic that when executed by the processor enables the processor to:
in response to the predetermined time period expiring, revert a level of trace diagnostic information that is captured by others of the plurality of software images to one of: a second predetermined level and a level prior to the first failure; and
load balance the capturing of the trace diagnostic information across the plurality of software images, wherein each one of the plurality of software images captures at least one of: trace diagnostic information for a particular one or more parts of a software stack and a particular one or more parts of a particular subset of the detailed trace diagnostic information.

### Claim 18 (depends on 14)

The non-transitory computer-readable storage device of claim 14, wherein:
each of the plurality of software images has at least one of a non-identical software stack and a non-identical workload, wherein the cause of the failure is at least one of: a particular software component, a particular process signal, an input/output (I/O) error, and a memory shortage; and
the logic further comprises logic that when executed by the processor enables the processor to:
in response to analyzing the first failure in the first one of the plurality of software images, analyze the information associated with the second failure based on findings associated with the analysis of the first failure in order to determine a cause of the second failure; and
based on the cause of the second failure, identify at least one action to prevent further failures.
