You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by gabriele <ga...@finantix.com> on 2017/05/10 21:19:45 UTC

Jackrabbit conflict during the restart of the repository

I have a problem while re-starting the repository oak

Environment:
Jackrabbit Oak 1.6.1
RDBDocumentStore instantiated for database PostgreSQL 9.5.6 (9.5), using
driver: PostgreSQL Native Driver PostgreSQL 9.4 JDBC4 (build 1204) (9.4),
Without using sling/felix/spring

This is my test:


	public void testModel() {
        try {
              Assert.assertEquals(createDataNode(),true);  //step1
              Assert.assertEquals(createDataNode(),false); //step2
        } catch (Exception e){
            fail(e.getMessage());
        }
    }

    private boolean createDataNode() throws Exception {
        boolean result = false;
        InitialContext ctx = new InitialContext();
        Object dataSource = ctx.lookup("jdbc/modules");
        final javax.sql.DataSource ds = (javax.sql.DataSource) dataSource;
        
        RDBOptions options = new RDBOptions();
        options.tablePrefix("JCR_");
        DocumentMK.Builder builder = new DocumentMK.Builder();
        builder.setRDBConnection(ds,options);
                   
        DocumentNodeStore nodeStore = builder.getNodeStore();
        Jcr jcr = new Jcr(nodeStore);
        jcr.with( new OpenSecurityProvider());
        Repository repository = jcr.createRepository();
        Session session = repository.login(new SimpleCredentials("admin",
"admin".toCharArray()));
        Node root = session.getRootNode();
        if (!root.hasNode("data")) {
            root.addNode( "root", JcrConstants.NT_FOLDER);
            result = true;
            session.save();
        }
        session.logout();
        ((JackrabbitRepository)repository).shutdown();
        nodeStore.dispose();
        return result;
    }




Step1: it works correctly
Step2: instead when creating the repository I get conflict problems.

Log:

org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0004:
OakMerge0004: Following exceptions occurred during the bulk update
operations: [org.apache.jackrabbit.oak.plugins.document.ConflictException:
The node 1:/jcr:system was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
2:/jcr:system/rep:namespaces was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
3:/jcr:system/rep:namespaces/rep:nsdata was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
2:/jcr:system/rep:documentStore was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
3:/jcr:system/rep:documentStore/bundlor was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
4:/jcr:system/rep:documentStore/bundlor/nt:file was already added in
revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
2:/jcr:system/jcr:activities was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
2:/jcr:system/jcr:versionStorage was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
2:/jcr:system/jcr:nodeTypes was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
3:/jcr:system/jcr:nodeTypes/rep:Unstructured was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
4:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:namedPropertyDefinitions
was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
5:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:namedPropertyDefinitions/rep:mixinTypes
was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
6:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:namedPropertyDefinitions/rep:mixinTypes/NAMES
was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
5:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:namedPropertyDefinitions/rep:primaryType
was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
6:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:namedPropertyDefinitions/rep:primaryType/NAME
was already added in revision
r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
r15bf40435e1-0-1,
org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
4:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:residualChildNodeDefinitions
was already added in revision


 I want to solve this problem, please can you help me? 








--
View this message in context: http://jackrabbit.510166.n4.nabble.com/Jackrabbit-conflict-during-the-restart-of-the-repository-tp4666842.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Re: Jackrabbit conflict during the restart of the repository

Posted by Clay Ferguson <wc...@gmail.com>.
I'm not familiar with this part of oak but, check these links:

line 468 is a hint:
https://apache.googlesource.com/jackrabbit-oak/+/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java

https://issues.apache.org/jira/browse/OAK-3733

https://issues.apache.org/jira/browse/OAK-3400


Best regards,
Clay Ferguson
wclayf@gmail.com


On Wed, May 10, 2017 at 4:19 PM, gabriele <ga...@finantix.com>
wrote:

> I have a problem while re-starting the repository oak
>
> Environment:
> Jackrabbit Oak 1.6.1
> RDBDocumentStore instantiated for database PostgreSQL 9.5.6 (9.5), using
> driver: PostgreSQL Native Driver PostgreSQL 9.4 JDBC4 (build 1204) (9.4),
> Without using sling/felix/spring
>
> This is my test:
>
>
>         public void testModel() {
>         try {
>               Assert.assertEquals(createDataNode(),true);  //step1
>               Assert.assertEquals(createDataNode(),false); //step2
>         } catch (Exception e){
>             fail(e.getMessage());
>         }
>     }
>
>     private boolean createDataNode() throws Exception {
>         boolean result = false;
>         InitialContext ctx = new InitialContext();
>         Object dataSource = ctx.lookup("jdbc/modules");
>         final javax.sql.DataSource ds = (javax.sql.DataSource) dataSource;
>
>         RDBOptions options = new RDBOptions();
>         options.tablePrefix("JCR_");
>         DocumentMK.Builder builder = new DocumentMK.Builder();
>         builder.setRDBConnection(ds,options);
>
>         DocumentNodeStore nodeStore = builder.getNodeStore();
>         Jcr jcr = new Jcr(nodeStore);
>         jcr.with( new OpenSecurityProvider());
>         Repository repository = jcr.createRepository();
>         Session session = repository.login(new SimpleCredentials("admin",
> "admin".toCharArray()));
>         Node root = session.getRootNode();
>         if (!root.hasNode("data")) {
>             root.addNode( "root", JcrConstants.NT_FOLDER);
>             result = true;
>             session.save();
>         }
>         session.logout();
>         ((JackrabbitRepository)repository).shutdown();
>         nodeStore.dispose();
>         return result;
>     }
>
>
>
>
> Step1: it works correctly
> Step2: instead when creating the repository I get conflict problems.
>
> Log:
>
> org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0004:
> OakMerge0004: Following exceptions occurred during the bulk update
> operations: [org.apache.jackrabbit.oak.plugins.document.ConflictException:
> The node 1:/jcr:system was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 2:/jcr:system/rep:namespaces was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 3:/jcr:system/rep:namespaces/rep:nsdata was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 2:/jcr:system/rep:documentStore was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 3:/jcr:system/rep:documentStore/bundlor was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 4:/jcr:system/rep:documentStore/bundlor/nt:file was already added in
> revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 2:/jcr:system/jcr:activities was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 2:/jcr:system/jcr:versionStorage was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 2:/jcr:system/jcr:nodeTypes was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 3:/jcr:system/jcr:nodeTypes/rep:Unstructured was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 4:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:namedPropertyDefinitions
> was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 5:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:
> namedPropertyDefinitions/rep:mixinTypes
> was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 6:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:
> namedPropertyDefinitions/rep:mixinTypes/NAMES
> was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 5:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:
> namedPropertyDefinitions/rep:primaryType
> was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 6:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:
> namedPropertyDefinitions/rep:primaryType/NAME
> was already added in revision
> r15bf3f33640-0-1 (older than base r15bf3f61336-0-1), before
> r15bf40435e1-0-1,
> org.apache.jackrabbit.oak.plugins.document.ConflictException: The node
> 4:/jcr:system/jcr:nodeTypes/rep:Unstructured/rep:
> residualChildNodeDefinitions
> was already added in revision
>
>
>  I want to solve this problem, please can you help me?
>
>
>
>
>
>
>
>
> --
> View this message in context: http://jackrabbit.510166.n4.
> nabble.com/Jackrabbit-conflict-during-the-restart-
> of-the-repository-tp4666842.html
> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
>