Patent ID: 8245081

Claim:
A method of processing a computer error, the method comprising: assigning a first observation buffer to a first thread; executing the first thread to carry out a task, the task including a subtask; assigning a second observation buffer to a second thread; calling the second thread to carry out the subtask; receiving a return value indicating a failure of the second thread to carry out the subtask; recording an observation to the second observation buffer, the observation comprising an identifier of a possible error condition of the second thread and instance data associated with the possible error condition of the second thread, the possible error condition of the second thread being representative of a possible cause of the failure of the second thread to carry out the subtask, and wherein the instance data comprises data that was either passed to the second thread or accessed by the second thread when the possible error condition occurred; determining whether the task can be completed despite the failure of the second thread to carry out the subtask; if the task cannot be completed: recording, to the first observation buffer, a new observation and the observation recorded to the second observation buffer, the new observation comprising an identifier of a possible error condition of the first thread and instance data associated with the possible error condition of the first thread, the possible error condition of the first thread being representative of a possible cause of failure of the first thread to carry out the task, wherein the instance data comprises data that was either passed to the first thread or accessed by the first thread when the possible error condition of the first thread occurred; and providing the observation and new observation to a correlation engine configured to map each of the observation and the new observation to a problem statement that describes an underlying cause of the error; and if the task can be completed despite the failure of the second thread to carry out the subtask: completing the task; and clearing the observation from the second observation buffer.