Michael Dürig created OAK-2404:
----------------------------------
Summary: Provide more information in SegmentNotFoundException
Key: OAK-2404
URL: https://issues.apache.org/jira/browse/OAK-2404
Project: Jackrabbit Oak
Issue Type: Sub-task
Components: segmentmk
Reporter: Michael Dürig
There is currently no way to distinguish between a {{SegmentNotFoundException}}
occurring because of a removed segment by gc or because of another corruption.
Optimally we would tell in the exception why the segment is gone, how old it
was when gc removed it and who/what was still referring to it at that time. In
order to do that, we probably need some kind of log for the following data:
When a segment was removed (because a new generation of the .tar file was made,
or because the .tar file was removed), we should log the segment, the file
name, and the date+time of the removal. If the segment was then not found
because it was too old, then another type of exception should be thrown
instead, for example "ReadTimeoutException", with a message that contains as
much data as possible: the data+time of the segment, date+time of the removal
of the segment, about when compaction was run, date+time of the session login
and last refresh, the stack trace of where the session was acquired.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)