Re: Engine Crashes - Are they acceptable? (fwd)
Posted in 1996
At 08:54 AM 6/24/96 CDT, Bill Ennis wrote: > Under what situations is it acceptable for the Informix Engine > to crash? The engine (or any program) should crash when it realizes that it is working with a corrupt resource (disk, memory, CPU, or such.) For example, if the engine writes a set of valid memory addresses to disk, and then retrieves them but one of them now falls outside of the engine's valid memory address space, then crashing (with an appropriate error message) is proper behavior for the engine. A good error message for this example is "Segment Violation", which indicates that the engine was told to use memory outside its known memory boundaries. (This example is from personal experience, the actual problem was a hard disk error!) This consistency checking (and the possibility of "crashing") serves to protect the data, and provides confidence in the validity of the results of a query, through the processes of writing, storage, selection, and reading. An engine could be written to never crash, but this "feature" would come at the expense of the data. Bugs, defined by the "Encyclopedia of CS" as errors in either the mechanics or logic of a computer program, are introduced by the programmer. They are mistakes in typing (mechanical) or mistakes in logic. That is, bugs are program errors. One characteristic of a bug is that it may be reproduced on demand, given the same inputs (identifying the required inputs may be difficult.) If an error happens only once, and cannot be made to happen again, then the support staff has only very limited options. It can search for histories of similar problems, examine the logs, messages, and stack dumps to try and identify what happened, and it can ensure that the user is back up and running. Beyond this, it can ask questions designed to help the user identify the relevant elements of a problem, educate the user on how to gather more information for the next time, and search on an independant platform for a similar problem. Sometimes the result of this limited set of options is seen by users as merely getting the engine back up and running. The watchword of technical support is "reproduction". As a customer, you can get the best from your support staff if you provide a complete scenario description, such that the support engineer can witness the actual error on demand. If the problem can be reproduced using a generic test case (such as the "stores" database) then the engineer can proceed directly to problem analysis without spending time gaining an understanding of the customer's proprietary structures. Only upon reproduction of the error can it be identified as a bug, or some other error. The salient points are these: Yes, there are some excellent reasons for engines to crash (protecting data), your support staff may not be able to help much beyond ensuring that you are running again (though they should never leave the impression that they are not concerned), and that the best research tool for investigating problems is you--the user. That's a pretty long rant. I hope it provides some insight which will help you to solve your problem. Clem __________________________________________________ Clem Akins (aka clema@informix.com) Informix Software, Inc (Standard disclaimers apply) International Technical Support Last seen: back in Menlo Park, California USA