lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Trejkaz (JIRA)" <j...@apache.org>
Subject [jira] Updated: (LUCENE-1262) NullPointerException from FieldsReader after problem reading the index
Date Thu, 10 Apr 2008 00:02:05 GMT

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

Trejkaz updated LUCENE-1262:
----------------------------

    Affects Version/s:     (was: 2.2)
                       2.1

Okay I'll eat my words now, it is indeed 2.1 as the version doesn't have openInput(String,int)
in it.

Anyway an update: I've managed to reproduce it on any text index by simulating random network
outage.  I'm keeping a flag which I set to true.  The trick is that the wrapping IndexInput
implementation *randomly* throws IOException if the flag is true -- if it always throws IOException
the problem doesn't occur.  If it randomly throws it then it occurs occasionally, and it always
seems to be for larger queries (I'm using MatchAllDocsQuery now.)

I'll see if I can tweak the code to make it more likely to happen and then start working up
to each version of Lucene to see if it stops happening somewhere.


> NullPointerException from FieldsReader after problem reading the index
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-1262
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1262
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.1
>            Reporter: Trejkaz
>
> There is a situation where there is an IOException reading from Hits, and then the next
time you get a NullPointerException instead of an IOException.
> Example stack traces:
> java.io.IOException: The specified network name is no longer available
> 	at java.io.RandomAccessFile.readBytes(Native Method)
> 	at java.io.RandomAccessFile.read(RandomAccessFile.java:322)
> 	at org.apache.lucene.store.FSIndexInput.readInternal(FSDirectory.java:536)
> 	at org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:74)
> 	at org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:220)
> 	at org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:93)
> 	at org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:34)
> 	at org.apache.lucene.store.IndexInput.readVInt(IndexInput.java:57)
> 	at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:88)
> 	at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:344)
> 	at org.apache.lucene.index.IndexReader.document(IndexReader.java:368)
> 	at org.apache.lucene.search.IndexSearcher.doc(IndexSearcher.java:84)
> 	at org.apache.lucene.search.Hits.doc(Hits.java:104)
> That error is fine.  The problem is the next call to doc generates:
> java.lang.NullPointerException
> 	at org.apache.lucene.index.FieldsReader.getIndexType(FieldsReader.java:280)
> 	at org.apache.lucene.index.FieldsReader.addField(FieldsReader.java:216)
> 	at org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:101)
> 	at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:344)
> 	at org.apache.lucene.index.IndexReader.document(IndexReader.java:368)
> 	at org.apache.lucene.search.IndexSearcher.doc(IndexSearcher.java:84)
> 	at org.apache.lucene.search.Hits.doc(Hits.java:104)
> Presumably FieldsReader is caching partially-initialised data somewhere.  I would normally
expect the exact same IOException to be thrown for subsequent calls to the method.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message