IP Library Granted Patent US 9,658,934
Granted Patent B2
US 9,658,934 · App. 14/841,550 · Granted May 23, 2017

Dynamic mechanism for fault injection for testing distributed systems

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 9,658,934
App. No.
14/841,550
Granted
May 23, 2017
Kind
B2
Abstract

A distributed system and method for error handling testing of a target component in the distributed system uses a proxy gateway in the target component that can intercept communications to and from remote components of the distributed system. When a proxy mode of the proxy gateway in the target component is enabled, at least one of the communications at the proxy gateway is modified to introduce an error. When the proxy mode of the proxy gateway in the target component is disabled, the communications to and from the remote components of the distributed system are transmitted via the proxy gateway without modification.

Claims (39)

1. A method for error handling testing of a target component in a distributed system with multiple components, the method comprising:

enabling a proxy mode of a proxy gateway in the target component;

when the proxy mode is enabled,

intercepting at least one communication between the target component and remote components of the distributed system at the proxy gateway in the target component,

modifying the intercepted communication to introduce an error, and

transmitting the modified, intercepted communication to the distributed system;

disabling the proxy mode of the proxy gateway in the target component; and

when the proxy mode is disabled, transmitting communications between the target component and the remote components of the distributed system via the proxy gateway without modification.

2. The method of claim 1 , wherein modifying the intercepted communication includes modifying an input parameter of a call from the target component to a remote component such that the remote component will fail the call so that a corresponding fault can be induced.

3. The method of claim 2 , wherein a value of the input parameter of the call to be performed by the remote component and wherein modifying the input parameter of the call includes changing the value of the input parameter in a predefined manner so that the remote component generates the corresponding fault in response to the call.

4. The method of claim 1 , wherein modifying the intercepted communication includes adding an artificial delay in a call from the target component to a remote component so that a timed-out fault can be induced.

5. The method of claim 1 , further comprising, when the proxy mode is enabled, modifying a communication from one of the remote components to the target component so that the communication is incorrect or unexpected.

6. The method of claim 1 , further comprising, when the proxy mode is enabled, managing an instruction to make an asynchronous call to one of the remote components at the proxy gateway without making the asynchronous call to that remote component, including subsequently failing a task associated with the asynchronous call.

7. The method of claim 1 , wherein the proxy gateway is implemented as a piece of code in the form of a small wrapper that wraps the gateway and provides the same Application-Programming Interface (API) interface as the gateway.

8. A non-transitory computer-readable storage medium containing program instructions for a method for error handling testing of a target component in a distributed system with multiple components, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising:

enabling a proxy mode of a proxy gateway in the target component;

when the proxy mode is enabled,

intercepting at least one communication between the target component and remote components of the distributed system at the proxy gateway in the target component,

modifying the intercepted communication to introduce an error, and

transmitting the modified, intercepted communication to the distributed system;

disabling the proxy mode of the proxy gateway in the target component; and

when the proxy mode is disabled, transmitting communications between the target component and the remote components of the distributed system via the proxy gateway without modification.

9. The non-transitory computer-readable storage medium of claim 8 , wherein modifying the intercepted communication includes modifying an input parameter of a call from the target component to a remote component such that the remote component will fail the call so that a corresponding fault can be induced.

10. The non-transitory computer-readable storage medium of claim 9 , wherein a value of the input parameter of the call to be performed by the remote component and wherein modifying the input parameter of the call includes changing the value of the input parameter in a predefined manner so that the remote component generates the corresponding fault in response to the call.

11. The non-transitory computer-readable storage medium of claim 10 , wherein modifying the intercepted communication includes adding an artificial delay in a call from the target component to a remote component so that a timed-out fault can be induced.

12. The non-transitory computer-readable storage medium of claim 10 , further comprising, when the proxy mode is enabled, modifying a communication from one of the remote components to the target component so that the communication is incorrect or unexpected.

13. The non-transitory computer-readable storage medium of claim 10 , wherein the steps further comprises, when the proxy mode is enabled, managing an instruction to make an asynchronous call to one of the remote components at the proxy gateway without making the asynchronous call to that remote component, including failing a task associated with the asynchronous call.

14. The non-transitory computer-readable storage medium of claim 10 , wherein the proxy gateway is implemented as a piece of code in the form of a small wrapper that wraps the gateway and provides the same Application-Programming Interface (API) interface as the gateway.

15. A distributed system with multiple components running on physical computer systems, the distributed system comprising:

a target component including a proxy gateway,

a testing module operably coupled to the target component,

a physical processor; and

a non-transitory computer readable medium having stored thereon program code, the program code causing the processor to:

cause the target component to intercept communications to and from remote components of the distributed system, and cause the proxy gateway to transmit the communications without modification when a proxy mode of the proxy gateway is disabled; and

cause the testing module to enable and disable the proxy mode of the proxy gateway in the target component, and facilitate a modification of at least one of the communications at the proxy gateway to introduce an error when the proxy mode is enabled.

16. The distributed system of claim 15 , wherein the program code further causes the proxy gateway of the target component to modify an input parameter of a call from the target component to a remote component such that the remote component will fail the call so that a corresponding fault can be induced.

17. The distributed system of claim 15 , wherein the program code further causes the proxy gateway of the target component to add an artificial delay in a call from the target component to a remote component so that a timed-out fault can be induced.

18. The distributed system of claim 15 , wherein the program code further causes the proxy gateway of the target component to modify a communication from one of the remote components to the target component so that the communication is incorrect or unexpected.

19. The distributed system of claim 15 , wherein the proxy gateway is implemented as a piece of code in the form of a small wrapper that wraps the gateway and provides the same Application-Programming Interface (API) interface as the gateway.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2016
From: YE, RUOPENG; GOLOSOVKER, VICTOR; LANGOUEV, ILIA; PERSHIN, ALEKSEY; WANG, BIN
To: VMWARE, INC.
Reel/Frame 039770/0350 →