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 manjula potula <ma...@gmail.com> on 2019/02/14 13:54:33 UTC

Null Pointer Exception during periodic deletion of expired doc in solr 7.6

Hello All,

We have upgraded to solr from 6.6 to 7.6 and seeing null pointer exception
with DocExpirationUpdateProcessorFactory. Didn't see this issue in 6.6
version of solr. Not sure if any changes made to the
updateRequestProcessorChain in 7.6 version, can anyone please help?


2019-02-14 03:21:58.417 INFO  (autoExpireDocs-29-thread-1) [   ]
o.a.s.u.p.IgnoreCommitOptimizeUpdateProcessorFactory commit from client
application ignored with status code: 200
2019-02-14 03:21:58.417 DEBUG (autoExpireDocs-29-thread-1) [   ]
o.a.s.u.p.LogUpdateProcessorFactory PRE_UPDATE FINISH
LocalSolrQueryRequest{}
2019-02-14 03:21:58.417 DEBUG (autoExpireDocs-29-thread-1) [   ]
o.a.s.c.s.i.ConcurrentUpdateSolrClient STATS pollInteruppts=1 pollExists=1
blockLoops=3 emptyQueueLoops=1
2019-02-14 03:21:58.417 DEBUG (autoExpireDocs-29-thread-1) [   ]
o.a.s.c.s.i.ConcurrentUpdateSolrClient STATS pollInteruppts=1 pollExists=1
blockLoops=5 emptyQueueLoops=0
2019-02-14 03:21:58.417 DEBUG (autoExpireDocs-29-thread-1) [   ]
o.a.s.c.s.i.ConcurrentUpdateSolrClient STATS pollInteruppts=1 pollExists=1
blockLoops=2 emptyQueueLoops=0
2019-02-14 03:21:58.417 DEBUG (autoExpireDocs-29-thread-1) [   ]
o.a.s.c.s.i.ConcurrentUpdateSolrClient STATS pollInteruppts=1 pollExists=1
blockLoops=1 emptyQueueLoops=0
2019-02-14 03:21:58.417 DEBUG (autoExpireDocs-29-thread-1) [   ]
o.a.s.c.s.i.ConcurrentUpdateSolrClient STATS pollInteruppts=1 pollExists=1
blockLoops=1 emptyQueueLoops=0
2019-02-14 03:21:58.417 ERROR (autoExpireDocs-29-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:952)
~[solr-core-7.6.0.jar:7.6.0 719cde97f84640faa1e3525690d262946571245f -
nknize - 2018-12-07 14:47:52]
at
org.apache.solr.update.processor.DistributedUpdateProcessor.doFinish(DistributedUpdateProcessor.java:920)
~[solr-core-7.6.0.jar:7.6.0 719cde97f84640faa1e3525690d262946571245f -
nknize - 2018-12-07 14:47:52]
at
org.apache.solr.update.processor.DistributedUpdateProcessor.finish(DistributedUpdateProcessor.java:1967)
~[solr-core-7.6.0.jar:7.6.0 719cde97f84640faa1e3525690d262946571245f -
nknize - 2018-12-07 14:47:52]
at
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.finish(LogUpdateProcessorFactory.java:182)
~[solr-core-7.6.0.jar:7.6.0 719cde97f84640faa1e3525690d262946571245f -
nknize - 2018-12-07 14:47:52]
at
org.apache.solr.update.processor.UpdateRequestProcessor.finish(UpdateRequestProcessor.java:80)
~[solr-core-7.6.0.jar:7.6.0 719cde97f84640faa1e3525690d262946571245f -
nknize - 2018-12-07 14:47:52]
at
org.apache.solr.update.processor.DocExpirationUpdateProcessorFactory$DeleteExpiredDocsRunnable.run(DocExpirationUpdateProcessorFactory.java:419)
[solr-core-7.6.0.jar:7.6.0 719cde97f84640faa1e3525690d262946571245f -
nknize - 2018-12-07 14:47:52]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:1.8.0_121]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
[?:1.8.0_121]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
[?:1.8.0_121]
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
[?:1.8.0_121]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[?:1.8.0_121]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[?:1.8.0_121]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]

We have below defined in solrconfig

<updateRequestProcessorChain name="auto_expire">
    <processor class="solr.processor.DocExpirationUpdateProcessorFactory">
       <null name="ttlFieldName"/>
       <null name="ttlParamName"/>
       <int name="autoDeletePeriodSeconds">300</int>
       <str name="expirationFieldName">expire_at</str>
    </processor>
    </updateRequestProcessorChain>

Below in schema.xml
<field name="expire_at" type="date" indexed="true" stored="true" />

Thanks,