Hello, We have a core with about 900K docs. Recently I have noticed that the deleteById query seems to always give me a SocketTimeoutException(stack trace is shown below). I cannot figure out why only deletion fails but not add/update. The SOLR client instance is created via spring wiring (configuration given below). Did anybody face the same issue ? How can I solve this issue ? Increasing the timeout did not help.
Configuration ------------------ <bean id="solrServer" class="org.apache.solr.client.solrj.impl.CommonsHttpSolrServer"> <constructor-arg> <value>http://xxxx:8080/solr-admin/xxxxcore</value> </constructor-arg> <property name="soTimeout" value="1000000"/> <property name="connectionTimeout" value="10000000"/> <property name="defaultMaxConnectionsPerHost" value="2000"/> <property name="maxTotalConnections" value="10000"/> <property name="followRedirects" value="false"/> <property name="allowCompression" value="true"/> <property name="maxRetries" value="1"/> </bean> Code --------- String filename = delfile.getName(); String id = filename.replace("_search.xml", ""); log.debug("Deleting id " + id); UpdateResponse response = solrServer.deleteById(id); log.info("Deleting response for " + id + " is " + response); boolean success = Util.moveFile(delfile, delprocessedpath); /** * Now delete old successfully processed files so that full reindex * from processed and transformed folders will not process unwanted/deleted documents */ File transformedFile = new File(transformedpath + (filename.replace("_search.xml", "_fast.xml"))); if(transformedFile.exists()) { log.info("Deleting archived Transformed file: " + transformedFile.getAbsolutePath()); transformedFile.delete(); } File processedFile = new File(processedpath+filename); if(processedFile.exists()) { log.info("Deleting archived Processed file: " + processedFile.getAbsolutePath()); processedFile.delete(); } Stack Trace ------------------ 2011-01-28 15:51:18,842-0500 ERROR [com.search.service.topics.feedprocessor.DeleteFeedProcessor] - Error deleting from Solr server for -AR2011011403385_search.xml org.apache.solr.client.solrj.SolrServerException: java.net.SocketTimeoutException: Read timed out at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:472) at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243) at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105) at org.apache.solr.client.solrj.SolrServer.deleteById(SolrServer.java:102) at com.search.service.topics.feedprocessor.DeleteFeedProcessor.processDelete(DeleteFeedProcessor.java:76) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:276) at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:260) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read(BufferedInputStream.java:237) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413) at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:416) ... 13 more Thanks Ravi Kiran