Re: Assert Failure error
Posted in 1998
Sean Kelsey wrote:
>
> Hello everyone...
>
> Has anyone seen this error in initialising Informix OnLine before ?? If so,
> what has caused it and is it serious ???
[SNIP]
> 11:01:09 Onconfig parameter LOGSMAX modified from 200 to 300.
> 11:01:09 Onconfig parameter NUMCPUVPS modified from 3 to 5.
> 11:01:09 Assert Failed: WARNING! logputx(CHFREE) - rsbegin() never called
[SNIP]
Yes, I have. Your machine crashed hard or the engine was not properly
shutdown during a system boot, and some log records were not flushed to
disk from the log buffer. It seems that a BEGIN WORK creates at least
two records and both must be present in the log for the fast recovery
to be able to properly recover. There is a vanishingly small chance
that one of these log records could be written to one of the three
logical log buffers while the other is written to the next buffer. The
chances of this causing a problem increase with buffered logging but it
can happen even with unbuffered logging. If the machine crashes before
the second log buffer can be flushed and after the first was flushed
then the fast recovery encounters an incomplete BEGIN WORK and gets
confused. The solution is to call tech support and tell them the
situation and ask them to truncate the log file immediately before that
partial log entry. Unless you use buffered logging and HUGE log
buffers you will lose only partial transactions that would be rolled
back anyway, a few tiny transactions, and possibly the COMMIT WORK
records for a few longer transactions. The damage should be minimal
and the Logical Recovery report in the message log will give you an
idea of the number of lost transactions rolled back.
Art S. Kagel