You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Jake Brownell <ja...@Benetech.org> on 2009/11/13 03:26:22 UTC

NPE when trying to view a specific document via Luke

Hi,

I'm seeing this stack trace when I try to view a specific document, e.g. /admin/luke?id=1   but luke appears to be working correctly when I just view /admin/luke. Does this look familiar to anyone? Our sysadmin just upgraded us to the 1.4 release, I'm not sure if this occurred before that.

Thanks,
Jake

1. java.lang.NullPointerException
2.         at org.apache.lucene.index.TermBuffer.set(TermBuffer.java:95)
3.         at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:158)
4.         at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:232)
5.         at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:179)
6.         at org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:975)
7.         at org.apache.lucene.index.DirectoryReader.docFreq(DirectoryReader.java:627)
8.         at org.apache.solr.search.SolrIndexReader.docFreq(SolrIndexReader.java:308)
9.         at org.apache.solr.handler.admin.LukeRequestHandler.getDocumentFieldsInfo(LukeRequestHandler.java:248)
10.        at org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:124)
11.        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
12.        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
13.        at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
14.        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
15.        at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:76)
16.        at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:158)
17.        at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
18.        at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:241)
19.        at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:435)
20.        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:586)
21.        at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
22.        at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
23.        at java.lang.Thread.run(Thread.java:619)
24.
25. Date: Fri, 13 Nov 2009 02:19:54 GMT
26. Server: Apache/2.2.3 (Red Hat)
27. Cache-Control: no-cache, no-store
28. Pragma: no-cache
29. Expires: Sat, 01 Jan 2000 01:00:00 GMT
30. Content-Type: text/html; charset=UTF-8
31. Vary: Accept-Encoding,User-Agent
32. Content-Encoding: gzip
33. Content-Length: 1066
34. Connection: close
35.

Re: NPE when trying to view a specific document via Luke

Posted by Solr Trey <so...@gmail.com>.
I played around with it and am also getting a NullPointerException on Solr
1.4, as well (albeit with a slightly different dump).  Some of my documents
actually return, FYI, just not all.  I'm on a on a multi-solr-core system
searching /solr/core1/admin/luke?id=MYID.  My Exception looked different,
than Jake's, though:

HTTP Status 500 - null java.lang.NullPointerException at
org.apache.lucene.index.Term.compareTo(Term.java:119) at
org.apache.lucene.index.TermInfosReader.getIndexOffset(TermInfosReader.java:160)
at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:231) at
org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:179) at
org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:975) at
org.apache.lucene.index.DirectoryReader.docFreq(DirectoryReader.java:627) at
org.apache.solr.search.SolrIndexReader.docFreq(SolrIndexReader.java:308) at
org.apache.solr.handler.admin.LukeRequestHandler.getDocumentFieldsInfo(LukeRequestHandler.java:248)
at
org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:124)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316) at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)

On Thu, Nov 12, 2009 at 9:26 PM, Jake Brownell <ja...@benetech.org> wrote:

> Hi,
>
> I'm seeing this stack trace when I try to view a specific document, e.g.
> /admin/luke?id=1   but luke appears to be working correctly when I just view
> /admin/luke. Does this look familiar to anyone? Our sysadmin just upgraded
> us to the 1.4 release, I'm not sure if this occurred before that.
>
> Thanks,
> Jake
>
> 1. java.lang.NullPointerException
> 2.         at org.apache.lucene.index.TermBuffer.set(TermBuffer.java:95)
> 3.         at
> org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:158)
> 4.         at
> org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:232)
> 5.         at
> org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:179)
> 6.         at
> org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:975)
> 7.         at
> org.apache.lucene.index.DirectoryReader.docFreq(DirectoryReader.java:627)
> 8.         at
> org.apache.solr.search.SolrIndexReader.docFreq(SolrIndexReader.java:308)
> 9.         at
> org.apache.solr.handler.admin.LukeRequestHandler.getDocumentFieldsInfo(LukeRequestHandler.java:248)
> 10.        at
> org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:124)
> 11.        at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
> 12.        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
> 13.        at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
> 14.        at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
> 15.        at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:76)
> 16.        at
> com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:158)
> 17.        at
> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
> 18.        at
> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:241)
> 19.        at
> com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:435)
> 20.        at
> com.caucho.server.port.TcpConnection.run(TcpConnection.java:586)
> 21.        at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
> 22.        at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
> 23.        at java.lang.Thread.run(Thread.java:619)
> 24.
> 25. Date: Fri, 13 Nov 2009 02:19:54 GMT
> 26. Server: Apache/2.2.3 (Red Hat)
> 27. Cache-Control: no-cache, no-store
> 28. Pragma: no-cache
> 29. Expires: Sat, 01 Jan 2000 01:00:00 GMT
> 30. Content-Type: text/html; charset=UTF-8
> 31. Vary: Accept-Encoding,User-Agent
> 32. Content-Encoding: gzip
> 33. Content-Length: 1066
> 34. Connection: close
> 35.
>

Re: NPE when trying to view a specific document via Luke

Posted by Chris Hostetter <ho...@fucit.org>.
: I think thats the case - I'm not seeing the problem - though I didn't
: follow your steps exactly, because I also set the data dir.

yeah ... i went back and tested again and verified that's what was 
happening.

There is a bug with Luke when viewing "binary" based fields 
introduced in Solr 1.4 (like the new Trie fields) which yonik has fixed in 
SOLR-1563 but i can't trigger any similar problems when using an existing 
1.3 schema and/or index.


-Hoss


Re: NPE when trying to view a specific document via Luke

Posted by Mark Miller <ma...@gmail.com>.
Chris Hostetter wrote:
> : expected (not optimal... but an index/schema mismatch).  If you're
> : using the 1.3 configs in 1.4 and getting an exception... that would be
> : very bad.  Is that the case?
>
> as far as i can tell: yes.  running 1.4 with the 1.3 example configs and 
> an existing 1.3 index seems to be an instant NPE...
>
> https://issues.apache.org/jira/browse/SOLR-1563?focusedCommentId=12777790&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12777790
>
> ...oh crap.  wait a minute ... i'm not on a computer where i can test 
> this, but was i geting bit by the same "dataDir in example configs is 
> relative the working directory" bug?
>
> that would be freaking embarassing.
>   

I think thats the case - I'm not seeing the problem - though I didn't
follow your steps exactly, because I also set the data dir.
> (i think we definitely still have a problem with /admin/luke in 1.4 -- i 
> was able to trigger that using the just 1.4 and teh 1.4 sample configs -- 
> but i think my concern about upgrading from 1.3 may be a red herring)
>   
Okay, just flipped the data dir to 1.4 (keeping solr.home on 1.3) and I
see the nullpointer - so looks like that was your issue.

>
>
>
> -Hoss
>
>   


Re: NPE when trying to view a specific document via Luke

Posted by Chris Hostetter <ho...@fucit.org>.
: expected (not optimal... but an index/schema mismatch).  If you're
: using the 1.3 configs in 1.4 and getting an exception... that would be
: very bad.  Is that the case?

as far as i can tell: yes.  running 1.4 with the 1.3 example configs and 
an existing 1.3 index seems to be an instant NPE...

https://issues.apache.org/jira/browse/SOLR-1563?focusedCommentId=12777790&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12777790

...oh crap.  wait a minute ... i'm not on a computer where i can test 
this, but was i geting bit by the same "dataDir in example configs is 
relative the working directory" bug?

that would be freaking embarassing.

(i think we definitely still have a problem with /admin/luke in 1.4 -- i 
was able to trigger that using the just 1.4 and teh 1.4 sample configs -- 
but i think my concern about upgrading from 1.3 may be a red herring)




-Hoss


Re: NPE when trying to view a specific document via Luke

Posted by Yonik Seeley <yo...@lucidimagination.com>.
On Fri, Nov 13, 2009 at 8:05 PM, Chris Hostetter
<ho...@fucit.org> wrote:
> : I tied to reproduce this in 1.4 using an index/configs created with 1.3,
> : but i got a *different* NPE when loading this url...
>
> I should have tried a simpler test ...  iget NPE's just trying to execute
> a simple search for *:* when i try to use the example index built
> in 1.3  (with the 1.3 configs) in 1.4.

If you're using the 1.4 configs while querying the 1.3 index, this is
expected (not optimal... but an index/schema mismatch).  If you're
using the 1.3 configs in 1.4 and getting an exception... that would be
very bad.  Is that the case?

-Yonik
http://www.lucidimagination.com

Re: NPE when trying to view a specific document via Luke

Posted by Chris Hostetter <ho...@fucit.org>.
: I tied to reproduce this in 1.4 using an index/configs created with 1.3, 
: but i got a *different* NPE when loading this url...

I should have tried a simpler test ...  iget NPE's just trying to execute 
a simple search for *:* when i try to use the example index built 
in 1.3  (with the 1.3 configs) in 1.4.  same (apparent) cause: code is 
attempting to deref a string returned by Fieldable.stringValue() which is 
null... 

java.lang.NullPointerException
	at org.apache.solr.schema.SortableIntField.write(SortableIntField.java:72)
	at org.apache.solr.schema.SchemaField.write(SchemaField.java:108)
	at org.apache.solr.request.XMLWriter.writeDoc(XMLWriter.java:311)
	at org.apache.solr.request.XMLWriter$3.writeDocs(XMLWriter.java:483)
	at org.apache.solr.request.XMLWriter.writeDocuments(XMLWriter.java:420)
	at org.apache.solr.request.XMLWriter.writeDocList(XMLWriter.java:457)
	at org.apache.solr.request.XMLWriter.writeVal(XMLWriter.java:520)
	at org.apache.solr.request.XMLWriter.writeResponse(XMLWriter.java:130)
	at org.apache.solr.request.XMLResponseWriter.write(XMLResponseWriter.java:34)
	at org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:325)

This really does smell like something in Lucene changed behavior 
drasticly.  I've been looking at diffs from java/trunk@691741 and 
java/tags/lucene_2_9_1 but nothing jumps out at me that would explain 
this.

If nothing else, i'm opening a solr issue...



-Hoss


Re: NPE when trying to view a specific document via Luke

Posted by Chris Hostetter <ho...@fucit.org>.
: > FWIW: I was able to reproduce this using the example setup (i picked a
: > doc id at random) �suspecting it was a bug in docFreq
: 
: Probably just a null being passed in the text part of the term.
: I bet Luke expects all field values to be strings, but some are binary.

I'm not sure i follow you ... i think you saying that naive assumptions in 
the LukeRequestHandler could result in it asking for the docFreq of a term 
that has a null string value because some field types are binary, except 
that...

 1) 1.3 didn't have this problem
 2) LukeRequestHandler.getDocumentFieldsInfo didn't change from 1.3 to 1.4

I tied to reproduce this in 1.4 using an index/configs created with 1.3, 
but i got a *different* NPE when loading this url...

   http://localhost:8983/solr/admin/luke?id=SP2514N

SEVERE: java.lang.NullPointerException
        at org.apache.solr.util.NumberUtils.SortableStr2int(NumberUtils.java:127)
        at org.apache.solr.util.NumberUtils.SortableStr2float(NumberUtils.java:83)
        at org.apache.solr.util.NumberUtils.SortableStr2floatStr(NumberUtils.java:89)
        at org.apache.solr.schema.SortableFloatField.indexedToReadable(SortableFloatField.java:62)
        at org.apache.solr.schema.SortableFloatField.toExternal(SortableFloatField.java:53)
        at org.apache.solr.handler.admin.LukeRequestHandler.getDocumentFieldsInfo(LukeRequestHandler.java:245)

...all three of these stack traces seem to suggest that some imple of 
Fieldable.stringValue in 2.9 is returning null in cases where it returned 
*something* else in the 2.4-dev jar used by Solr 1.3.

That seems like it could have other impacts besides LukeRequestHandler.


-Hoss

Re: NPE when trying to view a specific document via Luke

Posted by Yonik Seeley <yo...@lucidimagination.com>.
On Fri, Nov 13, 2009 at 5:41 PM, Chris Hostetter
<ho...@fucit.org> wrote:
> : I'm seeing this stack trace when I try to view a specific document, e.g.
> : /admin/luke?id=1 but luke appears to be working correctly when I just
>
> FWIW: I was able to reproduce this using the example setup (i picked a
> doc id at random)  suspecting it was a bug in docFreq

Probably just a null being passed in the text part of the term.
I bet Luke expects all field values to be strings, but some are binary.

-Yonik
http://www.lucidimagination.com

Re: NPE when trying to view a specific document via Luke

Posted by Chris Hostetter <ho...@fucit.org>.
: I'm seeing this stack trace when I try to view a specific document, e.g. 
: /admin/luke?id=1 but luke appears to be working correctly when I just 

FWIW: I was able to reproduce this using the example setup (i picked a 
doc id at random)  suspecting it was a bug in docFreq when using multiple 
segments, i tried optimizing and still got an NPE, but then my entire 
computer crashed (unrelated) before i could look any deeper.

I have to go out now, but i'll try to dig into this more when i get back 
... given where it happens in the code, it seems like a potentially 
serious lucene bug (either that: or LukeRequestHandler is doing something 
it really shouldn't be, but i can't imagine how it could trigger an NPE 
that deep in the lucene code)



: view /admin/luke. Does this look familiar to anyone? Our sysadmin just 
: upgraded us to the 1.4 release, I'm not sure if this occurred before 
: that.
: 
: Thanks,
: Jake
: 
: 1. java.lang.NullPointerException
: 2.         at org.apache.lucene.index.TermBuffer.set(TermBuffer.java:95)
: 3.         at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:158)
: 4.         at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:232)
: 5.         at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:179)
: 6.         at org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:975)
: 7.         at org.apache.lucene.index.DirectoryReader.docFreq(DirectoryReader.java:627)
: 8.         at org.apache.solr.search.SolrIndexReader.docFreq(SolrIndexReader.java:308)
: 9.         at org.apache.solr.handler.admin.LukeRequestHandler.getDocumentFieldsInfo(LukeRequestHandler.java:248)
: 10.        at org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:124)
: 11.        at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
: 12.        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)
: 13.        at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
: 14.        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
: 15.        at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:76)
: 16.        at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:158)
: 17.        at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
: 18.        at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:241)
: 19.        at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:435)
: 20.        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:586)
: 21.        at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:690)
: 22.        at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:612)
: 23.        at java.lang.Thread.run(Thread.java:619)
: 24.
: 25. Date: Fri, 13 Nov 2009 02:19:54 GMT
: 26. Server: Apache/2.2.3 (Red Hat)
: 27. Cache-Control: no-cache, no-store
: 28. Pragma: no-cache
: 29. Expires: Sat, 01 Jan 2000 01:00:00 GMT
: 30. Content-Type: text/html; charset=UTF-8
: 31. Vary: Accept-Encoding,User-Agent
: 32. Content-Encoding: gzip
: 33. Content-Length: 1066
: 34. Connection: close
: 35.
: 



-Hoss