Process Memory Resurrection for Post-Crash Diagnostics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Native runtime diagnostic tools for complex software systems like the Java Virtual Machine (JVM) are inaccessible after a process has crashed, limiting the ability to analyze the behavior of a crashed program, and the existence of multiple versions of diagnostic tools increases maintenance burdens.

Innovation Solution

A recovery system that resurrects process memory by loading memory segments from a memory dump into a new process, allowing diagnostic methods to be called as if the program had not crashed, thereby restoring the functionality of runtime diagnostic tools.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a process crashes and terminates, then the program execution stops, but the ability to use runtime diagnostic tools is lost

Engineering Contradiction:
Improvediagnostic capabilityVSAvoidprocess lifetime
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent creates a copy of the crashed process's memory image and loads it into a new process structure. This allows diagnostic tools to operate on the copied memory data without requiring the original process to be running, effectively extending diagnostic capability beyond the process's actual lifetime.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a new process as an intermediary between the crashed process's memory dump and the diagnostic tools. This new process acts as a mediator that hosts the memory image and enables diagnostic tool access, bridging the gap between the terminated process and the still-functional diagnostic infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple versions of diagnostic tools are maintained for runtime and post-mortem analysis, then comprehensive diagnostics are available, but maintenance burden increases

Engineering Contradiction:
Improvediagnostic coverageVSAvoidtool maintenance
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent makes runtime diagnostic tools universal by enabling them to work with both live processes and resurrected process images. The same diagnostic tool infrastructure serves dual purposes: analyzing running processes and analyzing crashed processes, eliminating the need for separate post-mortem diagnostic tool versions.

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

Solution Approach 2:

The patent merges the functionality of runtime and post-mortem diagnostics by allowing runtime diagnostic tools to operate on resurrected process images. This combines what were previously separate diagnostic capabilities into a unified approach, reducing the number of tool versions needed.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11106522B1Process memory resurrection: running code in-process after death
Publication Date: 2021.08.31 ORACLE INT CORP
  • US11106522B1 patent drawing
  • US11106522B1 patent drawing
  • US11106522B1 patent drawing

AI summary

In one aspect, a method includes identifying a memory dump generated by an operating system, identifying, within the memory dump, a set of memory segments associated with an instance of a program to map to virtual memory of a new process, loading the set of memory segments into virtual memory of the new process, and performing one or more diagnostics using the program in the new process. Performing the one or more diagnostics using the program in the new process may include calling code associated with the instance of the program and new program code, such as a newly built program that is part of a runtime diagnostic tool.