> 6. IO-thread: uncaught exception when writing the check point log
> record. This is now handled in Cache::ioThread(). Checkpoint will
> continue to run but the checkpoint log record will not be written.
> NOTE: Pay particular note of the last of these given that the solution
> to get out of this situation is to do a successful recovery. This fix
> might result in checkpoints that writes pages to the database without
> having a complete checkpoint log record between them (or at least I
> think this might be a possible scenario). Can this give problems for
> the recovery process? (I do not think so but thought it was good to
> mention it.... :-) ).
I think it's OK to fail to write the checkpoint log record and
finish the database writes. However, after the checkpoint log
record write fails, nothing else should happen.
It's way beyond the scope of this set of changes, but as Vlad
suggested we should have a high level state bit that says that
Falcon doesn't work. Every call through the handler should
check that bit and return an error. I'm not sure if that
state should stop the gophers ... but it should stop subsequent
changes to data and metadata and checkpoints. At least I
think it should.