Detecting deadlocks involving inter-processor interrupts
US-2015378791-A1 · Dec 31, 2015 · US
US9411661B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9411661-B2 |
| Application number | US-75485410-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 6, 2010 |
| Priority date | Apr 8, 2009 |
| Publication date | Aug 9, 2016 |
| Grant date | Aug 9, 2016 |
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.
A transaction processing system is operated. A first resource is locked as a shared resource by a first task executing on a computing device. The first task attempts to lock a second resource as an exclusive resource. The occurrence of a deadlock is ascertained. A second task that wishes to use the locked first resource is identified. A current position of the first task with respect to the first resource is stored. The lock on the first resource is removed. The second task is prompted to use the first resource. The first task locks the first resource as the shared resource. The first task is repositioned with respect to first resource according to the stored position. The first task locks the second resource as the exclusive resource. The first task is performed.
Opening claim text (preview).
The invention claimed is: 1. A method of operating a transaction processing system, comprising: by a first task executing within the transaction processing system on a computing device: issuing a first browse request within the transaction processing system that locks a first resource as a shared resource using a shared lock; issuing a first exclusive use request within the transaction processing system that attempts to lock a second resource as an exclusive resource using an exclusive lock, where the first exclusive use request fails with a first failure report saying that a second task identified within the first failure report has the second resource locked and that the first task must wait for the second task to release the second resource; ascertaining, in conjunction with the second task issuing a different exclusive use request within the transaction processing system that attempts to obtain exclusive use of the first resource that also fails with a second failure report saying that the first task identified within the second failure report has the first resource locked and that the second task must wait for the first task to release the first resource, that a deadlock has occurred; and responsive to the first task ascertaining that the deadlock has occurred in conjunction with the second failure report saying that the first task has the first resource locked within the transaction processing system and that the second task must wait for the first task to release the first resource, the first task within the transaction processing system: pausing its browse of the first resource; identifying, in association with the second failure report saying that the second task must wait for the first task to release the first resource, the second task that wishes to exclusively use the locked first resource that is locked as the shared resource using the shared lock; storing its current browse position of the first browse request with respect to the first resource; removing the shared lock on the first resource; prompting the second task to retry its different exclusive use request within the transaction processing system to obtain the exclusive use of the first resource; locking, after the second task releases the exclusive use of the first resource, the first resource again as the shared resource using the shared lock where the first task resumes the first browse request; repositioning itself with respect to the first resource according to the stored current browse position of the first browse request; issuing a second exclusive use request within the transaction processing system that locks the second resource as the exclusive resource using the exclusive lock; and performing the first task using the locked first resource and the locked second resource; where the first task ensures that neither the first task nor the second task is aborted as a result of the deadlock. 2. The method according to claim 1 , where, in response to prompting the second task to retry its different exclusive use request within the transaction processing system to obtain the exclusive use of the first resource, the first task waiting a defined period of time before attempting to lock the first resource again as the shared resource to resume the first browse request, and where the first task locking, after the second task releases the exclusive use of the first resource, the first resource again as the shared resource using the shared lock comprises the first task locking the first resource again as the shared resource using the shared lock in response to expiration of the defined period of time. 3. The method according to claim 1 , further comprising the first task assigning a higher priority to the second task. 4. The method according to claim 1 , where removing the shared lock on the first resource comprises removing shared locks on all shared resources locked by the first task using the shared locks. 5. The method according to claim 1 , where the first task storing its current browse position of the first browse request with respect to the first resource comprises the first task storing its current browse position with respect to all shared resources locked by the first task using shared locks. 6. The method according to claim 5 , where the first task repositioning itself with respect to the first resource according to the stored current browse position of the first browse request comprises the first task repositioning itself with respect to all of the shared resources locked by the first task using the shared locks. 7. The method according to claim 1 , where the first task identifying the second task that wishes to exclusively use the first resource that is locked as the shared resource comprises the first task determining that the second task comprises the first task. 8. A transaction processing system, comprising: a memory; and a processor programmed to: execute a first task within the transaction processing system to: issue a first browse request within the transaction processing system that locks a first resource as a shared resource using a shared lock; issue a first exclusive use request within the transaction processing system that attempts to lock a second resource as an exclusive resource using an exclusive lock, where the first exclusive use request fails with a first failure report saying that a second task identified within the first failure report has the second resource locked and that the first task must wait for the second task to release the second resource; ascertain, in conjunction with the second task issuing a different exclusive use request within the transaction processing system that attempts to obtain exclusive use of the first resource that also fails with a second failure report saying that the first task identified within the second failure report has the first resource locked and that the second task must wait for the first task to release the first resource, that a deadlock has occurred; and responsive to the first task ascertaining that the deadlock has occurred in conjunction with the second failure report saying that the first task has the first resource locked within the transaction processing system and that the second task must wait for the first task to release the first resource, the first task executing to: pause its browse of the first resource; identify in association with the second failure report saying that the second task must wait for the first task to release the first resource, the second task that wishes to exclusively use the first resource that is locked as the shared resource using the shared lock; store its current browse position of the first browse request with respect to the first resource; remove the shared lock on the first resource; prompt the second task to retry its different exclusive use request within the transaction processing system to obtain the exclusive use of the first resource; lock, after the second task releases the exclusive use of the first resource, the first resource again as the shared resource using the shared lock, where the first task resumes the first browse request; reposition itself with respect to the first resource according to the stored current browse position of the first browse request; issue a second exclusive use request within the transaction processing system that locks the second resource as the exclusive resource using the exclusive lock; and perform the first task using the locked first resource and the locked second resource; where the first task ensures that neither the first task nor the second task is aborted as a result of the deadlock. 9. The system according to claim 8 , where in response to the first task executing to pro
Deadlock detection or avoidance · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.