No worries :-)  Actually it would probably be worth improving the error 
reporting here to throw NPE when the documents are added to the UpdateRequest 
in the first place - do you want to open a JIRA?

Alan Woodward
www.flax.co.uk


On 23 Oct 2015, at 17:00, Markus Jelsma wrote:

> Ah crap, indeed! A few items slipped through some checks that i thought were 
> correct. Sorry to have bothered the list with this nonsense, but i didn't 
> 'see' it anymore :P
> 
> Thanks!
> Markus
> 
> 
> 
> -----Original message-----
>> From:Alan Woodward <a...@flax.co.uk>
>> Sent: Friday 23rd October 2015 17:30
>> To: solr-user@lucene.apache.org
>> Subject: Re: NPE in CloudSolrClient via AbstractFullDistribZkTestBase
>> 
>> It looks as though you're adding a null SolrInputDocument to your 
>> UpdateRequest somehow?  The bit that's throwing a NPE is iterating through 
>> the documents in order to route things correctly (UpdateRequest.java:204).
>> 
>> Alan Woodward
>> www.flax.co.uk
>> 
>> 
>> On 23 Oct 2015, at 13:53, Markus Jelsma wrote:
>> 
>>> Ah yes, i think i overlooked that one. Here it is:
>>> 
>>>   <error message="java.lang.NullPointerException" 
>>> type="org.apache.solr.client.solrj.SolrServerException">org.apache.solr.client.solrj.SolrServerException:
>>>  java.lang.NullPointerException
>>>       at 
>>> __randomizedtesting.SeedInfo.seed([C5A84EC72B29125E:BA7A28521E031EEB]:0)
>>>       at 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:948)
>>>       at 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:799)
>>>       at 
>>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:135)
>>>       at 
>>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:152)
>>>       at 
>>> io.openindex.solr.TestCompilerBase.indexDocs(TestCompilerBase.java:264)
>>>       at 
>>> io.openindex.solr.TestCompilerBase.indexRealLogs(TestCompilerBase.java:224)
>>>       at 
>>> io.openindex.solr.related.TestRelatedCompiler.testBasicRelations(TestRelatedCompiler.java:42)
>>>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>       at 
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>       at 
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>       at java.lang.reflect.Method.invoke(Method.java:497)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1627)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:836)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:872)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:886)
>>>       at 
>>> org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsFixedStatement.callStatement(BaseDistributedSearchTestCase.java:963)
>>>       at 
>>> org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsStatement.evaluate(BaseDistributedSearchTestCase.java:938)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
>>>       at 
>>> org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
>>>       at 
>>> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
>>>       at 
>>> org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:49)
>>>       at 
>>> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
>>>       at 
>>> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:365)
>>>       at 
>>> com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:798)
>>>       at 
>>> com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:458)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:845)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:747)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:781)
>>>       at 
>>> com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:792)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
>>>       at 
>>> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:54)
>>>       at 
>>> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
>>>       at 
>>> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
>>>       at 
>>> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
>>>       at 
>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>       at 
>>> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:365)
>>>       at java.lang.Thread.run(Thread.java:745)
>>> Caused by: java.lang.NullPointerException
>>>       at 
>>> org.apache.solr.client.solrj.request.UpdateRequest.getRoutes(UpdateRequest.java:204)
>>>       at 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.directUpdate(CloudSolrClient.java:583)
>>>       at 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:967)
>>>       at 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:856)
>>>       ... 47 more
>>> 
>>> I am puzzled, these are quite ordinary documents we're indexing, it trips 
>>> over the q9911555 document:
>>> 
>>> [qtp1792405644-114] INFO 
>>> org.apache.solr.update.processor.LogUpdateProcessor - [collection1] webapp= 
>>> path=/update params={wt=javabin&amp;version=2} {add=[q9911553 
>>> (1515826200349507584)]} 0 0
>>> [qtp301139233-79] INFO org.apache.solr.update.processor.LogUpdateProcessor 
>>> - [collection1] webapp= path=/update params={wt=javabin&amp;version=2} 
>>> {add=[q9911554 (1515826200351604736)]} 0 0
>>> [qtp301139233-78] INFO org.apache.solr.update.processor.LogUpdateProcessor 
>>> - [collection1] webapp= path=/update params={wt=javabin&amp;version=2} 
>>> {add=[q9911555 (1515826200354750464)]} 0 0
>>> [TEST-TestRelatedCompiler.testBasicRelations-seed#[C5A84EC72B29125E]] ERROR 
>>> org.apache.solr.client.solrj.impl.CloudSolrClient - Request to collection 
>>> collection1 failed due to (0) java.lang.NullPointerException, retry? 0
>>> [TEST-TestRelatedCompiler.testBasicRelations-seed#[C5A84EC72B29125E]] INFO 
>>> org.apache.solr.SolrTestCaseJ4 - ###Ending testBasicRelations
>>> 
>>> It makes no sense to me, what am i doing wrong here?
>>> 
>>> Thanks!
>>> Markus
>>> 
>>> -----Original message-----
>>>> From:Alan Woodward <a...@flax.co.uk>
>>>> Sent: Friday 23rd October 2015 14:16
>>>> To: solr-user@lucene.apache.org
>>>> Subject: Re: NPE in CloudSolrClient via AbstractFullDistribZkTestBase
>>>> 
>>>> The NPE is from another server (hence being wrapped in a 
>>>> SolrServerException), so the original issue *should* be being logged 
>>>> elsewhere - are there no errors earlier on in the log?
>>>> 
>>>> Alan Woodward
>>>> www.flax.co.uk
>>>> 
>>>> 
>>>> On 23 Oct 2015, at 12:44, Markus Jelsma wrote:
>>>> 
>>>>> Hi - anyone  here to shed some light on the issue?
>>>>> 
>>>>> Markus
>>>>> 
>>>>> 
>>>>> 
>>>>> -----Original message-----
>>>>>> From:Markus Jelsma <markus.jel...@openindex.io>
>>>>>> Sent: Tuesday 20th October 2015 13:39
>>>>>> To: solr-user <solr-user@lucene.apache.org>
>>>>>> Subject: NPE in CloudSolrClient via AbstractFullDistribZkTestBase
>>>>>> 
>>>>>> Hi - we have some code inside a unit test, extending 
>>>>>> AbstractFullDistribZkTestBase. I am indexing thousands of documents as 
>>>>>> part of the test to getCommonCloudSolrClient(); Somewhere down the line 
>>>>>> it trips over a document. I've debugged inspected the bas document but 
>>>>>> cannot find anything wrong with it. The thrown exception is beyond 
>>>>>> unhelpful:
>>>>>> 
>>>>>>    <error message="java.lang.NullPointerException" 
>>>>>> type="org.apache.solr.client.solrj.SolrServerException">org.apache.solr.client.solrj.SolrServerException:
>>>>>>  java.lang.NullPointerException
>>>>>>      at 
>>>>>> __randomizedtesting.SeedInfo.seed([D78A66027B188E12:A85800974E3282A7]:0)
>>>>>>      at 
>>>>>> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:948)
>>>>>>      at 
>>>>>> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:799)
>>>>>>      at 
>>>>>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:135)
>>>>>>      at 
>>>>>> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:152)
>>>>>> 
>>>>>> These are the last lines including that document
>>>>>> 
>>>>>> SolrInputDocument(fields: [id=q9911555, type=query, 
>>>>>> compound_sid=nl_44da5ce2766326cc_52303206, 
>>>>>> compound_dig=nl_44da5ce2766326cc_1282013516, filter=44da5ce2766326cc, 
>>>>>> uid=3141070978, sid=52303206, dig=1282013516, time=2014-10-08T16:51:06Z, 
>>>>>> query=Omeprazol, qtime=46, lang=nl, hits=46, engine=fake])
>>>>>> [qtp350954577-74] INFO 
>>>>>> org.apache.solr.update.processor.LogUpdateProcessor - [collection1] 
>>>>>> webapp= path=/update params={wt=javabin&version=2} {add=[q9911555 
>>>>>> (1515548831923568640)]} 0 1
>>>>>> [TEST-TestRelatedCompiler.testBasicRelations-seed#[14DC4C771346037F]] 
>>>>>> ERROR org.apache.solr.client.solrj.impl.CloudSolrClient - Request to 
>>>>>> collection collection1 failed due to (0) java.lang.NullPointerException, 
>>>>>> retry? 0
>>>>>> 
>>>>>> Any ideas?
>>>>>> 
>>>>>> Thanks,
>>>>>> Markus
>>>>>> 
>>>> 
>>>> 
>> 
>> 

Reply via email to