IP Library Granted Patent US 12,430,191
Granted Patent B2
US 12,430,191 · App. 18/416,499 · Granted Sep 30, 2025

System and method for detection of, prevention of, and recovery from software execution failure

Inventors: Todd Kulick (Mountain View, CA); Igor Pichkov (Mountain View, CA)
Assignee: Adeia Guides Inc.
G06F11/076G06F8/65G06F11/0706G06F11/079G06F11/0793G06F11/1417G06F11/302G06F11/366
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,430,191
App. No.
18/416,499
Granted
Sep 30, 2025
Kind
B2
Abstract

Systems and methods are disclosed herein for monitoring, detecting, and mitigating hardware and software failures. An error detection module monitors the execution of software processes and detects failures of the monitored processes. The error detection module may monitor reboot events and correlate reboot events with failures of the monitored software processes. If a monitored process fails, the error detection module may log the failure and its cause. If the same process has failed numerous times, causing the user device to experience a reboot loop, remedial action may be taken based on the cause of the failure.

Claims (29)

1. A method for handling software execution failures on a user device, the method comprising:

monitoring execution of a plurality of software processes on the user device;

detecting on the user device a first failure at a first step of a first software process and a second failure at a second step of a second software process;

in response to determining that a number of failures on the user device exceeds a low failure threshold, preventing normal execution of the plurality of software processes; and

beginning the first software process at a step after the first step.

2. A method as in claim 1 wherein the second failure prevents the execution of a software process subsequent the first software process.

3. A method as in claim 2 wherein the executing the first software process at a step after the first step allows the software process subsequent the first software process to execute successfully.

4. A method as in claim 1 , wherein the first step occurs before the second step.

5. A method as in claim 1 , wherein the first step occurs concurrently with the second step.

6. A method as in claim 1 wherein the first step and the second step are part of the same function.

7. A method as in claim 1 wherein the first software process and the second software process are the same function.

8. A method as in claim 1 further comprising based on a result of the execution of the first software process at a step after the first step, determining a remedial action.

9. A method as in claim 1 further comprising determining that the number of failures exceeds both the low failure threshold and a high failure threshold and in response transmitting to a server a request for assistance.

10. A method as in claim 1 wherein the software process is a virtual process encompassing a plurality of software processes.

11. A system for handling software execution failures on a user device, the system comprising:

control circuitry configured to:

monitor execution of a plurality of software processes on the user device;

detect on the user device a first failure at a first step of the first process and a second failure at a second step of a second software process;

in response to determining that a number of failures on the user device exceeds a low failure threshold, prevent normal execution of the plurality of software processes; and

begin the first software process at a step after the first step.

12. A system as in claim 11 wherein the second failure prevents the execution of a software process subsequent the first software process.

13. A system as in claim 12 wherein the executing the first software process at a step after the first step allows the software process subsequent the first software process to execute successfully.

14. A system as in claim 11 , wherein the first step occurs before the second step.

15. A system as in claim 11 , wherein the first step occurs concurrently with the second step.

16. A system as in claim 11 wherein the first step and the second step are part of the same function.

17. A system as in claim 11 wherein the first software process and the second software process are the same function.

18. A system as in claim 11 the control circuitry further configured to, based on a result of the execution of the first software process at a step after the first step, determine a remedial action.

19. A system as in claim 11 the control circuitry further configured to determine that the number of failures exceeds both the low failure threshold and a high failure threshold and in response transmit to a server a request for assistance.

20. A system as in claim 11 wherein the software process is a virtual process encompassing a plurality of software processes.

Assignments (2)
CHANGE OF NAME Recorded Oct 3, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069106/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: KULICK, TODD; PICHKOV, IGOR
To: ROVI GUIDES, INC.
Reel/Frame 066675/0807 →
Continuity (5)
Continuation 17392838 · Aug 3, 2021
Continuation 17060462 · Oct 1, 2020
Continuation 16019234 · Jun 26, 2018
Provisional Application 62663762 · Apr 27, 2018
Related Publication 20240411631A1 · Dec 12, 2024
References Cited (22)
US 5948112A · Shimada · 1999 [cited by examiner]
US 6675295B1 · Marcelais · 2004 [cited by examiner]
US 7165098B1 · Boyer et al. · 2007 [cited by applicant]
US 7490268B2 · Keromytis et al. · 2009 [cited by applicant]
US 7761892B2 · Ellis et al. · 2010 [cited by applicant]
US 8046801B2 · Ellis et al. · 2011 [cited by applicant]
US 8904234B2 · Matsubara et al. · 2014 [cited by applicant]
US 8984266B2 · Wang et al. · 2015 [cited by applicant]
US 9086969B2 · Bekiroglu · 2015 [cited by examiner]
US 9842017B1 · Zhang et al. · 2017 [cited by applicant]
US 11113147B2 · Kulick et al. · 2021 [cited by applicant]
US 20020174430A1 · Ellis et al. · 2002 [cited by applicant]
US 20040103412A1 · Rao et al. · 2004 [cited by applicant]
US 20050138111A1 · Aton et al. · 2005 [cited by applicant]
US 20050251827A1 · Ellis et al. · 2005 [cited by applicant]
US 20100011243A1 · Locasto et al. · 2010 [cited by applicant]
US 20100293407A1 · Locasto et al. · 2010 [cited by applicant]
US 20120041638A1 · Johnson et al. · 2012 [cited by applicant]
US 20120173859A1 · Wang et al. · 2012 [cited by applicant]
US 20170192839A1 · Kurian et al. · 2017 [cited by applicant]
US 20210365321A1 · Kulick et al. · 2021 [cited by applicant]
U.S. Appl. No. 62/663,762, filed Apr. 27, 2018. [cited by applicant]