# US 7,467,378 B1 · System state rollback after modification failure

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

- Number: US 7,467,378 B1
- Document ID: US7467378B1
- Status: Granted
- Kind: B1
- Application number: 10/775,471
- Filed: 2004-02-09
- Granted: 2008-12-16
- Earliest claimed: 2004-02-09
- Assignees: Symantec Corporation
- Inventors: William E. Sobel
- Web page: https://patentgrep.com/patent/US7467378B1

## CPC

- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A rollback manager creates a restore point on a computer. The rollback manager stores a reboot indicator in non-revertible storage. The rollback manager monitors the reboot indicator to detect an unexpected reboot during deployment of a modification. The rollback manager configures the computer responsive to the reboot indicator. The rollback manager can roll back the system state, responsive to detecting a failed modification deployment. The rollback manager can deem the computer to be stable, responsive to detecting a successful modification deployment.

## Claims

### Claim 1

A computer implemented method for rolling back a system state after a modification failure, the method comprising the steps of:
a rollback manager creating a restore point on a computer;
the rollback manager storing a reboot indicator in non-revertible storage;
the rollback manager storing initial audit information in non-revertible storage, the initial audit information comprising an enumeration of at least some items present in the system state before deployment of a modification, the items not intended to be modified by the deployment;
the rollback manager monitoring the reboot indicator during deployment of the modification, the monitoring comprising:
the rollback manager detecting a reboot of the computer, the reboot having occurred during the deployment of the modification; and
the rollback manager determining based at least in part on the reboot indicator whether the reboot was expected or whether the reboot was unexpected; and
responsive at least in part to determining that no unexpected reboot occurred during the deployment of the modification:
the rollback manager re-auditing the computer, the re-auditing comprising deeming the computer stable based on comparing each of the enumerated items in the stored initial audit information with items present in the system state after deployment of the modification to determine missing items; and
responsive to the rollback manager not deeming the computer stable, the rollback manager rolling back the system state of the computer according to the restore point.

### Claim 2 (depends on 1)

The method of claim 1 wherein the initial audit information at least one item from a group of items consisting of:
a currently executing system process;
a currently executing user process; and
a currently open listening port.

### Claim 3 (depends on 1)

The method of claim 1 wherein the rollback manager deeming the computer stable further comprises:
the rollback manager clearing the reboot indicator.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
the rollback manager deploying rollback capability on the computer; and
the rollback manager storing, in non-revertible storage, information concerning deployment of the rollback capability on the computer; wherein the rollback manager deeming the computer stable further comprises the rollback manager disabling the deployed rollback capability.

### Claim 5 (depends on 1)

The method of claim 1 further comprising:
the rollback manager waiting for a specified period of time before re-auditing the computer.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
the rollback manager repeating the following steps a specified number of times at specified intervals:
responsive at least in part to determining that no unexpected reboot occurred during the deployment of the modification:
the rollback manager re-auditing the computer, the re-auditing comprising deeming the computer stable based on comparing each of the enumerated items in the stored initial audit information with items present in the system state after deployment of the modification to determine missing items; and
responsive to the rollback manager not deeming the computer stable, the rollback manager rolling back the system state of the computer according to the restore point.

### Claim 7 (depends on 1)

The method of claim 1 further comprising:
the rollback manager configuring the reboot indicator to indicate that a modification is to be deployed.

### Claim 8 (depends on 7)

The method of claim 7 further comprising:
the rollback manager configuring the reboot indicator to indicate that the deployment of the modification is expected to reboot the computer.

### Claim 9 (depends on 8)

The method of claim 8 wherein the rollback manager configuring the reboot indicator to indicate that the deployment of the modification is expected to reboot the computer further comprises:
the rollback manager monitoring deployment of the modification; and
the rollback manager configuring the reboot indicator responsive to the deployment requesting a reboot of the computer.

### Claim 10 (depends on 1)

The method of claim 1 wherein the rollback manager monitoring the reboot indicator to detect an unexpected reboot during deployment of a modification further comprises:
the rollback manager reading the reboot indicator, the reading performed after a reboot of the computer, and the reading performed before a loading of an operating system.

### Claim 11 (depends on 10)

The method of claim 10 further comprising:
the rollback manager updating the reboot indicator to indicate the occurrence of the reboot.

### Claim 12 (depends on 1)

The method of claim 1 wherein the reboot indicator comprises:
an indication of a specific number of reboots that are expected; and
a counter of executed reboots.

### Claim 13 (depends on 1)

The method of claim 1 further comprising:
the rollback manager deploying rollback capability on the computer; and
the rollback manager storing, in non-revertible storage, information concerning deployment of the rollback capability on the computer.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
responsive to the rollback manager rolling back the system state of the computer according to the restore point, the rollback manager disabling the deployed rollback capability.

### Claim 15 (depends on 1)

The method of claim 1 wherein the reboot indicator comprises at least one attribute from a group of attributes consisting of:
an indication of whether a reboot is expected; and
an indication of whether a modification is being deployed.

### Claim 16 (depends on 1)

The method of claim 1, further comprising:
responsive at least in part to determining that at least one unexpected reboot occurred during the deployment of the modification, the rollback manager rolling back the system state of the computer according to the restore point.

### Claim 17

A computer readable storage medium containing an executable computer program product for rolling back a system state after a modification failure, the computer program product comprising:
program code for creating a restore point on a computer;
program code for storing a reboot indicator in non-revertible storage;
program code for storing initial audit information in non-revertible storage, the initial audit information comprising an enumeration of at least some items present in the system state before deployment of a modification, the items not intended to be modified by the deployment;
program code for monitoring the reboot indicator during deployment of the modification, the monitoring comprising:
detecting a reboot of the computer, the reboot having occurred during the deployment of the modification; and
determining based at least in part on the reboot indicator whether the reboot was expected or whether the reboot was unexpected; and
program code for, responsive at least in part to determining that no unexpected reboot occurred during the deployment of the modification:
re-auditing the computer, the re-auditing comprising deeming the computer stable based on comparing each of the enumerated items in the stored initial audit information with items present in the system state after deployment of the modification to determine missing items; and
responsive to not deeming the computer stable, rolling back the system state of the computer according to the restore point.

### Claim 18 (depends on 17)

The computer readable medium of claim 17, wherein the initial audit information enumerates at least one item from a group of items consisting of:
a currently executing system process;
a currently executing user process; and
a currently open listening port.

### Claim 19 (depends on 17)

The computer readable medium of claim 17, further comprising:
program code for, responsive at least in part to determining that at least one unexpected reboot occurred during the deployment of the modification, rolling back the system state of the computer according to the restore point.

### Claim 20

A computer system including a computer to support code execution for rolling back a system state after a modification failure, the computer system comprising:
a creation module, configured to create a restore point on a computer;
a storage module, configured to store a reboot indicator in non-revertible storage, the storage module being communicatively coupled to the creation module;
an auditing module, configured to store initial audit information in non-revertible storage, the initial audit information comprising an enumeration of at least some items present in the system state before deployment of a modification, the items not intended to be modified by the deployment;
a monitoring module, configured to monitor the reboot indicator during deployment of the modification, further configured to detect a reboot of the computer, further configured to determine based at least in part on the reboot indicator whether the reboot was expected or whether the reboot was unexpected, the monitoring module being communicatively coupled to the storage module;
a re-auditing module, configured to, responsive at least in part to the monitoring module determining that no unexpected reboot occurred during the deployment of the modification, re-audit the computer, the re-auditing comprising deeming the computer stable based on comparing each of the enumerated items in the stored initial audit information with items present in the system state after deployment of the modification to determine missing items; and
a rollback module, configured to, responsive at least in part to the re-auditing module not deeming the computer stable, roll back the system state of the computer according to the restore point.

### Claim 21 (depends on 20)

The computer system of claim 20, wherein the initial audit information enumerates at least one item from a group of items consisting of:
a currently executing system process;
a currently executing user process; and
a currently open listening port.
