jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominique Pfister (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-931) cluster synchronization NPE
Date Mon, 21 May 2007 13:56:16 GMT

    [ https://issues.apache.org/jira/browse/JCR-931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12497455
] 

Dominique Pfister commented on JCR-931:
---------------------------------------

While testing the clustering functionality, I encountered this exception on rare occasions.
From the contents of the journal log , I deduced the following scenario:

Cluster-Node1 (CN1):
(1) adds child node C to N
      performs some other operations, 
(2) deletes child node C,

Cluster-Node2 (CN2):
----> CN1 executes (1)
- receives the notification about the addition of node C
- invokes all registered event handlers
- SearchManager.onEvent invokes updateNodes of its query handler (cf stack trace above)
- SearchIndex.updateNodes retrieves the node state, CN1 did not yet execute (2)
- SearchIndex.createDocument invokes NodeIndexer.createDoc
----> CN1 executes (2)
- NodeIndexer.createDoc tries to retrieve the node state's child node entry in its parent:

  this returns null, since the node does no longer exists and the very next line, trying to
  retrieve the child's node name, throws.


> cluster synchronization NPE
> ---------------------------
>
>                 Key: JCR-931
>                 URL: https://issues.apache.org/jira/browse/JCR-931
>             Project: Jackrabbit
>          Issue Type: Bug
>    Affects Versions: 1.3
>            Reporter: Xiaohua Lu
>
> we have a 4 machines setup and encountered the following NPE in one of the nodes. After
restarting tomcat, the problem seems to go away. But it would be nice to find out why.
> java.lang.NullPointerException
>         at org.apache.jackrabbit.core.query.lucene.NodeIndexer.createDoc(NodeInd
> exer.java:146)
>         at org.apache.jackrabbit.core.query.lucene.SearchIndex.createDocument(Se
> archIndex.java:566)
>         at org.apache.jackrabbit.core.query.lucene.SearchIndex$2.next(SearchInde
> x.java:368)
>         at org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.
> java:354)
>         at org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(Searc
> hIndex.java:356)
>         at org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:4
> 23)
>         at org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(Ev
> entConsumer.java:231)
>         at org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatch
> Events(ObservationDispatcher.java:201)
>         at org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(
> EventStateCollection.java:424)
>         at org.apache.jackrabbit.core.state.SharedItemStateManager.externalUpdat
> e(SharedItemStateManager.java:882)
>         at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.externalUpdat
> e(RepositoryImpl.java:1957)
>         at org.apache.jackrabbit.core.cluster.ClusterNode.end(ClusterNode.java:8
> 34)
>         at org.apache.jackrabbit.core.cluster.ClusterNode.consume(ClusterNode.ja
> va:929)
>         at org.apache.jackrabbit.core.journal.AbstractJournal.doSync(AbstractJou
> rnal.java:191)
>         at org.apache.jackrabbit.core.journal.AbstractJournal.sync(AbstractJourn
> al.java:166)
>         at org.apache.jackrabbit.core.cluster.ClusterNode.sync(ClusterNode.java:
> 283)
>         at org.apache.jackrabbit.core.cluster.ClusterNode.start(ClusterNode.java
> :229)
>         at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
> 308)
>         at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
> 584)
>         at org.apache.jackrabbit.core.jndi.BindableRepository.createRepository(B
> indableRepository.java:174)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message