jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-7910) Composite node store: Creating a new Lucene index; reindex
Date Thu, 22 Nov 2018 07:45:00 GMT

    [ https://issues.apache.org/jira/browse/OAK-7910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16695626#comment-16695626
] 

Thomas Mueller commented on OAK-7910:
-------------------------------------

I think the changes in the TypeEditor and NameValidator (those are the problematic ones: they
would break things) are only necessary if one would create an index _first_ in the read-only
repository and _then_ in the read-write repository. They don't seem to be needed if the index
is first created in the read-write repository, and _then_ in the read-only repository.

For the *reindex* use case, the following changes are needed: 
* the change in IndexUpdate, so that reindexing works without removing :oak:mount-libs-index-data
* the change in OakDirectory, as the old files can't be removed
* the change in the CompositeNodeStore: not sure, I don't think so

For the *new index* use case (index is first created in the read-write repository), the following
changes are needed:
* the change in the CompositeNodeStore

For the *new index in strange order* use case (index is first created in the read-only repository),
the following changes are needed:
* the change in the CompositeNodeStore
* the changes in the TypeEditor and NameValidator (which are very problematic)

For the *remove index* use case, the following changes are needed:
* the change in OakDirectory, as the old files can't be removed

So I think we just don't support "new index in strange order". If one by mistake does that,
then he will have to remove the index in the read-only repository again, then create it in
the read-write repository, and only then in the read-only repository.

I will now work on a better patch, with getMountByPath as suggested by [~tomek.rekawek].

> Composite node store: Creating a new Lucene index; reindex
> ----------------------------------------------------------
>
>                 Key: OAK-7910
>                 URL: https://issues.apache.org/jira/browse/OAK-7910
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: composite, core
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>            Priority: Major
>
> With the composite node store, creating a Lucene index in the read-write repository fails
due to the exception below. I think Oak shouldn't try to do node type validation for hidden
nodes.
> {noformat}
> Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakConstraint0001: /oak:index/test/:oak:mount-libs-index-data[[]]:
The primary type null does not exist
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor$1.onConstraintViolation(TypeEditor.java:109)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.constraintViolation(TypeEditor.java:234)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.createEffectiveType(TypeEditor.java:337)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.<init>(TypeEditor.java:203)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.checkNodeTypeConstraints(TypeEditor.java:482)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.enter(TypeEditor.java:276)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.spi.commit.VisibleEditor.enter(VisibleEditor.java:53) [org.apache.jackrabbit.oak-store-spi:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.spi.commit.CompositeEditor.enter(CompositeEditor.java:65)
[org.apache.jackrabbit.oak-store-spi:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeAdded(EditorDiff.java:121)
[org.apache.jackrabbit.oak-store-spi:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.composite.CompositeNodeState$WrappingDiff.childNodeAdded(CompositeNodeState.java:304)
[org.apache.jackrabbit.oak-store-composite:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.composite.CompositeNodeState$ChildrenDiffFilter.childNodeAdded(CompositeNodeState.java:247)
[org.apache.jackrabbit.oak-store-composite:1.9.10.R1845889]
> Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakConstraint0001: /oak:index/test/:oak:mount-libs-index-data[[]]:
The primary type null does not exist
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor$1.onConstraintViolation(TypeEditor.java:109)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.constraintViolation(TypeEditor.java:234)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.createEffectiveType(TypeEditor.java:337)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.<init>(TypeEditor.java:203)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.checkNodeTypeConstraints(TypeEditor.java:482)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.plugins.nodetype.TypeEditor.enter(TypeEditor.java:276)
[org.apache.jackrabbit.oak-core:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.spi.commit.VisibleEditor.enter(VisibleEditor.java:53) [org.apache.jackrabbit.oak-store-spi:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.spi.commit.CompositeEditor.enter(CompositeEditor.java:65)
[org.apache.jackrabbit.oak-store-spi:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeAdded(EditorDiff.java:121)
[org.apache.jackrabbit.oak-store-spi:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.composite.CompositeNodeState$WrappingDiff.childNodeAdded(CompositeNodeState.java:304)
[org.apache.jackrabbit.oak-store-composite:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.composite.CompositeNodeState$ChildrenDiffFilter.childNodeAdded(CompositeNodeState.java:247)
[org.apache.jackrabbit.oak-store-composite:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.segment.MapRecord$4.childNodeAdded(MapRecord.java:443)
[org.apache.jackrabbit.oak-segment-tar:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:505) [org.apache.jackrabbit.oak-segment-tar:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:440) [org.apache.jackrabbit.oak-segment-tar:1.9.10.R1845889]
> 	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
[org.apache.jackrabbit.oak-segment-tar:1.9.10.R1845889]
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message