jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martijn Hendriks (JIRA)" <j...@apache.org>
Subject [jira] Updated: (JCR-905) Clustering: race condition may cause duplicate entries in search index
Date Wed, 09 May 2007 14:43:15 GMT

     [ https://issues.apache.org/jira/browse/JCR-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Martijn Hendriks updated JCR-905:

    Attachment: log2.txt

I think that the issue is caused by the fact that a Document for the node is created in two
different indices as a result of the pause in scenario 2. Consider the attached log snippets.
log1.txt shows scenario 1: everything is written to the volatile index. log2.txt shows what
happens after a pause of a few seconds: the volatile index with the entry for node A (that
has been generated by the index initialization) is written to disk, after which another Document
containing node A is added to a new volatile index (as a result of an event that is generated
by the cluster synchronization).

(Please note that I added a custom debug statement to MultiIndex$AddNode).

> Clustering: race condition may cause duplicate entries in search index
> ----------------------------------------------------------------------
>                 Key: JCR-905
>                 URL: https://issues.apache.org/jira/browse/JCR-905
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.3
>            Reporter: Martijn Hendriks
>         Attachments: log1.txt, log2.txt
> There seems to be a race condition that may cause duplicate search index entries. It
is reproducible as follows (Jackrabbit 1.3):
> 1) Start clusternode 1 that just adds a single node of node type clustering:test.
> 2) Shutdown clusternode 1.
> 3) Start clusternode 2 with an empty search index.
> 4) Execute the query  //element(*, clustering:test).
> 4) Print the result of the query (UUIDs of nodes in the result set).
> When I just run clusternode 2, then there is one node in the resultset, as expected.
However, when I debug clusternode 2 and have a breakpoint (i.e., a pause of a few seconds
at line 306 of RepositoryImpl.java - just before the clusternode is started), then the resultset
contains two results, both with the same UUID.

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

View raw message