Thanks, Young-Seek.
I think that I might take you up on your offer to chat next week :)

Cheers,
Till

On 6 Nov 2015, at 15:36, Young-Seok Kim wrote:

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