Applying program patch sets
US-2017168798-A1 · Jun 15, 2017 · US
US10025582B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10025582-B2 |
| Application number | US-201514964804-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 10, 2015 |
| Priority date | Dec 10, 2015 |
| Publication date | Jul 17, 2018 |
| Grant date | Jul 17, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments of the present invention disclose a method, computer program product, and system for applying a plurality of program patch sets on a plurality of computer programs. Virtual machines are prepared to be patchable, in response to a suspended computer program. Synchronized snapshots of the virtual machines are created. A plurality of binary code sections of each of the synchronized snapshots are determined. Symbol data information of each of the synchronized snapshots are analyzed, based on the program patch sets. The determined binary code sections are replaced with a set of patch data, based on the plurality of program patch sets, resulting in patched snapshots for each of the synchronized snapshots. Dependencies of the patch data are adjusted, based on the replaced plurality of binary code sections and the execution of the computer program on each of the virtual machines are resumed using the plurality of patched snapshots.
Opening claim text (preview).
What is claimed is: 1. A method for applying a plurality of program patch sets on a plurality of computer programs, the method comprising: preparing at least two virtual machines to be concurrently patchable, in response to suspending execution of a computer program on each of the virtual machines; creating a synchronized snapshot of each of the at least two virtual machines; determining a plurality of binary code sections of each of the synchronized snapshots; analyzing symbol data information of each of the synchronized snapshot, based on the plurality of program patch sets; replacing the determined plurality of binary code sections with a set of patch data, based on the plurality of program patch sets, resulting in a plurality of patched snapshots for each of the synchronized snapshots; adjusting dependencies of the patch data, based on the replaced plurality of binary code sections; and resuming the execution of the computer program on each of the virtual machines using the plurality of patched snapshots. 2. The method of claim 1 , wherein applying the plurality of program patch sets occurs simultaneously in at least two virtual machines running on at least one computer system. 3. The method of claim 1 , wherein the method for applying the plurality of program patch sets is running in at least two physical machines. 4. The method of claim 1 , wherein preparing at least two virtual machines to be concurrently patchable further comprises synchronizing one or more processing units. 5. The method of claim 1 , wherein the analyzed symbol data information of each of the synchronized snapshot is based on a single program patch set within the plurality of program patch sets. 6. The method of claim 1 , further comprising: executing a plurality of test cases in the at least two virtual machines or at least two physical machines; determining a test pass condition; executing a subsequent patch set from a sequence of patch sets, in response to determining the test pass condition failed; and executing one or more computer programs in one or more processing units, in response to determining the test pass condition successful. 7. The method of claim 1 , further comprising: generating the synchronized snapshot for each of the at least two virtual machines or the at least two physical machines, in response to detecting a break point by a debugger executing in at least two virtual machines or the at least two physical machines. 8. The method of claim 1 , further comprising: generating the synchronized snapshot for each the at least two virtual machines or the at least two physical machines at a pre-determined instant of time. 9. The method of claim 1 , further comprising: generating the synchronized snapshot for each of the at least two virtual machines or the at least two physical machines, in response to a pre-determined data being generated by the one or more computer programs. 10. The method of claim 1 , further comprising: replacing one or more computer programs in the at least two virtual machines or at least two physical machines, with the plurality of patched snapshots; and resuming the execution of the at least two virtual machines or the at least two physical machines. 11. The method of claim 1 , further comprising: preparing one or more processing units; executing one or more of the at least two virtual machines and the at least two physical machines; and generating the synchronized snapshot of each of the at least two virtual machines or the at least two physical machines, wherein generating is performed by bringing the one or more processing units to a concurrent patchable state. 12. The method of claim 1 , further comprising: generating the synchronized snapshots by a snapshot manager; triggering a hypervisor; and running the hypervisor on a computer system. 13. The method of claim 12 , further comprising: controlling the testing of the plurality of patch sets by the snapshot manager; and executing a debugger client. 14. The method of claim 13 , further comprising: determining the plurality of binary code sections to be patched using one or more of the debugger client and a combination of debugger clients. 15. The method of claim 14 , further comprising: determining the plurality of binary code sections to be patched, in response to analyzing symbol data information stored in synchronized snapshots associated with each binary code section of the plurality of binary code sections. 16. The method of claim 15 , further comprising: obtaining an address offset from an architecture table. 17. The method of claim 15 , further comprising: determining the plurality of binary code sections to be patched, in response to determining a process address stored in the synchronized snapshots associated with each binary code section of the plurality of binary code sections. 18. The method of claim 1 , wherein applying the plurality of program patch sets on a plurality of computer programs further comprises: replacing a program code segment; identifying a plurality of references within the plurality of binary code sections; adapting the plurality of references; applying relocations to the plurality of binary code sections in the plurality of patched snapshots.
Monitoring or debugging support · CPC title
Hypervisor-specific management and integration aspects · CPC title
Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16) · CPC title
Updates (security arrangements therefor G06F21/57) · CPC title
Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.