[
https://issues.apache.org/jira/browse/SOLR-13281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16818664#comment-16818664
]
Tomás Fernández Löbbe commented on SOLR-13281:
----------------------------------------------
Looks like the problem is that the URP expects the header to exist and the
{{DeleteExpiredDocsRunnable}} is not setting one (like
{{SolrCore.execute(...)}} does for regular requests). I was looking through the
code to see if other URP assume the header or not, and some do, while some
others don't. While [~munendrasn]'s fix would work, I think a better solution
is to just make the {{DeleteExpiredDocsRunnable}} provide a header, to keep
consistency with regular requests executed by SolrCore. Attaching an
alternative patch.
Testing is not easy without a lot of instrumentation to the
{{DocExpirationUpdateProcessorFactory}}, maybe not worth it. Checked the
existing tests (that were logging the erros) and the issue is fixed with the
patch.
> NullPointerException processing expired documents
> -------------------------------------------------
>
> Key: SOLR-13281
> URL: https://issues.apache.org/jira/browse/SOLR-13281
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: update
> Affects Versions: 7.6, 7.7, 7.7.1
> Environment: OS:
> Linux redhatje2 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013
> x86_64 x86_64 x86_64 GNU/Linux
>
> JVM:
> java version "1.8.0_131"
> Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
> Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
>
> Reporter: Gerald Bonfiglio
> Assignee: Tomás Fernández Löbbe
> Priority: Critical
> Fix For: 7.7.2, 8.1
>
> Attachments: SOLR-13281.patch
>
>
> Getting following error in log:
> {noformat}
> 2019-02-28 04:06:34.824 INFO (autoExpireDocs-30-thread-1) [ ]
> o.a.s.u.p.DocExpirationUpdateProcessorFactory Beginning periodic deletion of
> expired docs
> 2019-02-28 04:06:34.848 INFO (autoExpireDocs-30-thread-1) [ ]
> o.a.s.u.DirectUpdateHandler2 start
> commit{_version_=1626684045233487872,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=true,prepareCommit=false}
> 2019-02-28 04:06:34.849 INFO (autoExpireDocs-30-thread-1) [ ]
> o.a.s.u.DirectUpdateHandler2 end_commit_flush
> 2019-02-28 04:06:34.849 ERROR (autoExpireDocs-30-thread-1) [ ]
> o.a.s.u.p.DocExpirationUpdateProcessorFactory Runtime error in periodic
> deletion of expired docs: null
> java.lang.NullPointerException: null
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.handleReplicationFactor(DistributedUpdateProcessor.java:992)
> ~[solr-core-7.7.0.jar:7.7.0 8c831daf4eb41153c25ddb152501ab5bae3ea3d5 -
> jimczi - 2019-02-04 23:23:46]
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doFinish(DistributedUpdateProcessor.java:960)
> ~[solr-core-7.7.0.jar:7.7.0 8c831daf4eb41153c25ddb152501ab5bae3ea3d5 -
> jimczi - 2019-02-04 23:23:46]
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.finish(DistributedUpdateProcessor.java:2057)
> ~[solr-core-7.7.0.jar:7.7.0 8c831daf4eb41153c25ddb152501ab5bae3ea3d5 -
> jimczi - 2019-02-04 23:23:46]
> at
> org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.finish(LogUpdateProcessorFactory.java:182)
> ~[solr-core-7.7.0.jar:7.7.0 8c831daf4eb41153c25ddb152501ab5bae3ea3d5 -
> jimczi - 2019-02-04 23:23:46]
> at
> org.apache.solr.update.processor.DocExpirationUpdateProcessorFactory$DeleteExpiredDocsRunnable.run(DocExpirationUpdateProcessorFactory.java:419)
> [solr-core-7.7.0.jar:7.7.0 8c831daf4eb41153c25ddb152501ab5bae3ea3d5 - jimczi
> - 2019-02-04 23:23:46]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:1.8.0_131]
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
> [?:1.8.0_131]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
> [?:1.8.0_131]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
> [?:1.8.0_131]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [?:1.8.0_131]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [?:1.8.0_131]
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
> {noformat}
> Processing chain definition from solr_config:
> {code:java}
> <updateRequestProcessorChain name="xxx-update-chain">
> <processor class="solr.processor.DocExpirationUpdateProcessorFactory">
> <int name="autoDeletePeriodSeconds">43200</int>
> <str name="ttlFieldName">_ttl_</str>
> <null name="ttlParamName"/>
> <str name="expirationFieldName">_expire_at_</str>
> </processor>
> <processor class="solr.RunUpdateProcessorFactory"/>
> </updateRequestProcessorChain>{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]