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&version=2} {add=[q9911553 >>> (1515826200349507584)]} 0 0 >>> [qtp301139233-79] INFO org.apache.solr.update.processor.LogUpdateProcessor >>> - [collection1] webapp= path=/update params={wt=javabin&version=2} >>> {add=[q9911554 (1515826200351604736)]} 0 0 >>> [qtp301139233-78] INFO org.apache.solr.update.processor.LogUpdateProcessor >>> - [collection1] webapp= path=/update params={wt=javabin&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 >>>>>> >>>> >>>> >> >>