You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2007/04/27 14:41:15 UTC

[jira] Resolved: (JCR-778) Error on query initialization - intermittent

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

Marcel Reutegger resolved JCR-778.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.4

The problem was caused by index replace actions in the redo log created by the index merger. This also explains why it does not happen after every test restart, but only after a number of index segments have been created that trigger the index merger. With the default values this happens after 10 segments exist. Hence, the error occurs when the test case is restarted the 11th time.

The index recovery also replayed the index replacement, which finally resulted in a corrupt index.

Fixed in revision: 533080

> Error on query initialization - intermittent
> --------------------------------------------
>
>                 Key: JCR-778
>                 URL: https://issues.apache.org/jira/browse/JCR-778
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: indexing
>    Affects Versions: 1.1, 1.1.1, 1.2.1, 1.2.2, 1.2.3, 1.3
>         Environment: Linux Fedora Core 5, ext2 filesystem, Java 1.5 (Sun)
>            Reporter: Michael Neale
>             Fix For: 1.4
>
>         Attachments: jackrabbit-JCR-778.zip
>
>
> About 1 in ten times, I get the error as shown in the stack trace below. This happens when I run test, or when I start the app. The only way to resolve (when testing) seems to be to blow away the repository. 
> It always happens at the point the query manager is accessed (triggering the query subsystem to start up). It DOES NOT cause an exception to be thrown back to the caller, I just noticed it in the logs. Basically the queries return NO data at all (and show up as test failures of course). 
> In each case when I startup the system/test, if the repository exists I use it, and (for tests) clean it by deleting the root node of the user content, and then starting again, otherwise there is nothing that exciting.
> Please let me know if more info is needed.
> ERROR 05-03 15:54:39,386 (LazyQueryResultImpl.java:getResults:266)  -Exception while executing query:
> java.io.IOException : No such file or directory
>     at java.io.UnixFileSystem.createFileExclusively(Native Method)
>     at java.io.File.createNewFile(File.java:850)
>     at org.apache.jackrabbit.core.query.lucene.FSDirectory$1.obtain( FSDirectory.java:119)
>     at org.apache.lucene.store.Lock.obtain(Lock.java:51)
>     at org.apache.lucene.store.Lock$With.run(Lock.java:98)
>     at org.apache.lucene.index.IndexReader.open(IndexReader.java:141)
>     at org.apache.lucene.index.IndexReader.open(IndexReader.java:136)
>     at org.apache.jackrabbit.core.query.lucene.AbstractIndex.getReadOnlyIndexReader(AbstractIndex.java:191)
>     at org.apache.jackrabbit.core.query.lucene.MultiIndex.getIndexReader (MultiIndex.java:616)
>     at org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchIndex.java:384)
>     at org.apache.jackrabbit.core.query.lucene.LazyQueryResultImpl.executeQuery(LazyQueryResultImpl.java :204)
>     at org.apache.jackrabbit.core.query.lucene.LazyQueryResultImpl.getResults(LazyQueryResultImpl.java:244)
>     at org.apache.jackrabbit.core.query.lucene.LazyQueryResultImpl.<init>(LazyQueryResultImpl.java :161)
>     at org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:164)
>     at org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:142)

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