Apparently this is a known issue with Lucene: http://lucene.472066.n3.nabble.com/Nasty-NIO-behavior-makes-NIOFSDirectory-silently-close-channel-td602851.html
On Thu, Nov 1, 2012 at 9:44 AM, Robert Haycock < [email protected]> wrote: > Hi, > > Jackrabbit: 2.4.3 > Glassfish: 3.1.1 (12) > OS: Ubuntu 10.04 > > When performing an xpath query I'm getting ClosedByInterruptException > followed by a series of ClosedChannelException. (FYI we are changing to > use JCR SQL2). > > I've seen some posts which suggest it might be the container > interrupting the thread. So, I have tried writing a test to perform a > search whilst also explicitly interrupting the thread but I can't > reproduce the error. It appears to randomly appear during the life time > of the app. > > Any ideas what might be causing this and how it can be solved? > > Thanks, > > Rob. > > > Ps. Example of the 2 exceptions... > > 5:48 se1vxpra-arsst2 java.nio.channels.ClosedByInterruptException > Nov 1 10:45:48 se1vxpra-arsst2 at > java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterrupt > ibleChannel.java:184) > Nov 1 10:45:48 se1vxpra-arsst2 at > sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:617) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.readInternal(NIOF > SDirectory.java:168) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput. > java:139) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput. > java:94) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.directory.FSDirectoryManager$Ind > exInputLogWrapper.readBytes(FSDirectoryManager.java:264) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.IndexInput.readBytes(IndexInput.java:62) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(Com > poundFileReader.java:257) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.jav > a:160) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.j > ava:39) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.store.IndexInput.readVInt(IndexInput.java:79) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.index.SegmentTermDocs.read(SegmentTermDocs.java:144) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.index.DirectoryReader$MultiTermDocs.read(DirectoryRead > er.java:1182) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ReadOnlyIndexReader$FilteredTerm > Docs.read(ReadOnlyIndexReader.java:252) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.TermScorer.nextDoc(TermScorer.java:109) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.MultiScorer.nextDoc(MultiScorer. > java:68) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.ConjunctionScorer.<init>(ConjunctionScorer.java > :42) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.ConjunctionScorer.<init>(ConjunctionScorer.java > :33) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2$2.<init>(BooleanScorer2.java:178 > ) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.countingConjunctionSumScorer(Boo > leanScorer2.java:173) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.makeCountingSumScorerSomeReq(Boo > leanScorer2.java:230) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.makeCountingSumScorer(BooleanSco > rer2.java:208) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.<init>(BooleanScorer2.java:101) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery. > java:336) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisWeight.s > corer(ChildAxisQuery.java:334) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisWeight.s > corer(ChildAxisQuery.java:332) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisWeight.s > corer(ChildAxisQuery.java:332) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.DescendantSelfAxisQuery$Descenda > ntSelfAxisWeight.scorer(DescendantSelfAxisQuery.java:395) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.LuceneQueryHits.<init>(LuceneQue > ryHits.java:52) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.JackrabbitIndexSearcher.evaluate > (JackrabbitIndexSearcher.java:107) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.JackrabbitIndexSearcher.execute( > JackrabbitIndexSearcher.java:85) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchI > ndex.java:831) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.SingleColumnQueryResult.executeQ > uery(SingleColumnQueryResult.java:74) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.QueryResultImpl.getResults(Query > ResultImpl.java:275) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.SingleColumnQueryResult.<init>(S > ingleColumnQueryResult.java:66) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java > :134) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:132) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:129) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.session.SessionState.perform(SessionState.jav > a:216) > Nov 1 10:45:48 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:128) > > > 6:16 se1vxpra-arsst2 java.nio.channels.ClosedChannelException > Nov 1 10:46:16 se1vxpra-arsst2 at > sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:88) > Nov 1 10:46:16 se1vxpra-arsst2 at > sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:603) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.readInternal(NIOF > SDirectory.java:168) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput. > java:139) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput. > java:94) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.directory.FSDirectoryManager$Ind > exInputLogWrapper.readBytes(FSDirectoryManager.java:264) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.IndexInput.readBytes(IndexInput.java:62) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(Com > poundFileReader.java:257) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.jav > a:160) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.j > ava:39) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.store.IndexInput.readVInt(IndexInput.java:79) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.index.SegmentTermDocs.read(SegmentTermDocs.java:144) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.index.DirectoryReader$MultiTermDocs.read(DirectoryRead > er.java:1182) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ReadOnlyIndexReader$FilteredTerm > Docs.read(ReadOnlyIndexReader.java:252) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.TermScorer.nextDoc(TermScorer.java:109) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.MultiScorer.nextDoc(MultiScorer. > java:68) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.ConjunctionScorer.<init>(ConjunctionScorer.java > :42) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.ConjunctionScorer.<init>(ConjunctionScorer.java > :33) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2$2.<init>(BooleanScorer2.java:178 > ) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.countingConjunctionSumScorer(Boo > leanScorer2.java:173) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.makeCountingSumScorerSomeReq(Boo > leanScorer2.java:230) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.makeCountingSumScorer(BooleanSco > rer2.java:208) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanScorer2.<init>(BooleanScorer2.java:101) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.lucene.search.BooleanQuery$BooleanWeight.scorer(BooleanQuery. > java:336) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisWeight.s > corer(ChildAxisQuery.java:334) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisWeight.s > corer(ChildAxisQuery.java:332) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.ChildAxisQuery$ChildAxisWeight.s > corer(ChildAxisQuery.java:332) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.DescendantSelfAxisQuery$Descenda > ntSelfAxisWeight.scorer(DescendantSelfAxisQuery.java:395) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.LuceneQueryHits.<init>(LuceneQue > ryHits.java:52) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.JackrabbitIndexSearcher.evaluate > (JackrabbitIndexSearcher.java:107) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.JackrabbitIndexSearcher.execute( > JackrabbitIndexSearcher.java:85) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.SearchIndex.executeQuery(SearchI > ndex.java:831) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.SingleColumnQueryResult.executeQ > uery(SingleColumnQueryResult.java:74) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.QueryResultImpl.getResults(Query > ResultImpl.java:275) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.SingleColumnQueryResult.<init>(S > ingleColumnQueryResult.java:66) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java > :134) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:132) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:129) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.session.SessionState.perform(SessionState.jav > a:216) > Nov 1 10:46:16 se1vxpra-arsst2 at > org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:128) >
