[
https://issues.apache.org/jira/browse/OAK-3864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Dürig resolved OAK-3864.
--------------------------------
Resolution: Fixed
Fixed at http://svn.apache.org/viewvc?rev=1724451&view=rev by adding the ids of
segments referenced through forward references into the initial set of
referenced ids. This potentially requires multiple passes over all entries in
all tar readers. I added additional logging so we can catch it when this takes
too long.
> Filestore cleanup removes referenced segments
> ---------------------------------------------
>
> Key: OAK-3864
> URL: https://issues.apache.org/jira/browse/OAK-3864
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: segmentmk
> Reporter: Michael Dürig
> Assignee: Michael Dürig
> Priority: Blocker
> Labels: regression
> Fix For: 1.3.14
>
>
> In some situations {{FileStore.cleanup()}} may remove segments that are still
> referenced, subsequently causing a {{SNFE}}.
> This is a regression introduced with OAK-1828.
> {{FileStore.cleanup()}} relies on the ordering of the segments in the tar
> files: later segments only reference earlier segments. As we have seen in
> other places this assumption does not hold any more (e.g. OAK-3794, OAK-3793)
> since OAK-1828.
> {{cleanup}} traverses the segments backwards maintaining a list of
> referenced ids. When a segment is not in that list, it is removed. However,
> this approach does not work with forward references as those are only seen
> later when the segment has been removed already.
> cc [~alex.parvulescu], [~frm]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)