[
https://issues.apache.org/jira/browse/OAK-4054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15167091#comment-15167091
]
Alex Parvulescu commented on OAK-4054:
--------------------------------------
bq. But the implementation is completely wrong. It basically always returns
true.
I don't disagree with you. the implementation only guards against segments that
could come from a different store (hence a different tracker), so it is weak in
its guarantee, and blissfully unaware of possible GC running.
Is this a bug that *needs* fixing for 1.4? I'm not convinced, what type of
impact do you see, besides the work on OAK-3348 which will not make it into
1.4? All I'm saying is this needs to be evaluated for perf impact, and if it's
related to / needed for OAK-3348, let's evaluate it in that context, not
before. As a standalone issue, I would not fix this for 1.4.
> FileStore.containsSegment returns alway true (almost)
> -----------------------------------------------------
>
> Key: OAK-4054
> URL: https://issues.apache.org/jira/browse/OAK-4054
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: segmentmk
> Reporter: Michael Dürig
> Assignee: Michael Dürig
> Priority: Critical
> Labels: compaction, gc, stability
> Fix For: 1.4
>
>
> {{FileStore.containsSegment()}} looks
> [funky|https://github.com/mduerig/jackrabbit-oak/blob/36cb3bf6e5078e3afa75581fb789eeca7b5df2e2/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java#L1197-L1197].
> This "optimisation" causes it to always return {{true}}.
> {{containsSegment}} is used for deduplication and revision gc. The current
> implementation causes {{SNFE}} exceptions once gc is effective (as I
> experienced while working on OAK-3348).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)