1. LogManager.log() ignores the exception in order for the caller not to
return unless the log is flushed regardless of the exception. This
guarantee must be provided for those JOB_COMMIT and ABORT log records.
2. LogManager.getAndInitNewPage() also ignores it since unless the
logManager can get any available log tail page, the system should not
proceed.
3. LogManger.terminateLogFlusher() --> LogFlusher.terminate()

In general, all of these ignorance are to provide a certain guarantee that
the system should provide as long as the system is alive.

If you have further questions, we can chat.

Best,
Young-Seok


On Fri, Nov 6, 2015 at 2:11 PM, Till Westmann <[email protected]> wrote:

> Hi,
>
> in the methods “log”, “getAndInitNewPage”, and “terminateLogFlusher” in
> LogManager and “terminate” and “call” in LogFlusher InterruptedExceptions
> are being caught and mostly ignored (at least the thread is not stopped).
> While that seems to be ok in LogManager.terminateLogFlusher (as the method
> will end anyway), for the other methods this happens in a loop that depends
> on modifications in another thread and so this might never happen if the
> other thread is stopped before performing those modifications.
> Now I think that this has been done carefully and that this all works
> fine, but it’s not obvious by looking at the code, and I’d like to
> understand if/why the current behavior is correct in the way we use it.
> Who could help me with that?
>
> Thanks,
> Till
>

Reply via email to