Hi everyone , We have hit this strange bug using the atomic update functionality of both SOLR 4.0 and SOLR 4.2.1.
We're currently posting a JSON formatted file to the core's updater using a simple curl method however we've run a very bizarre error where periodically it will fail and return a 400 error message. If we were to send the exact same request and file 5 minutes later, sometimes it will be accepted and return a 200 and other times it will continue to throw 400's. This tends to happen when the SOLR is receiving a lot of updates and restarting tomcat seems to clear up the issue, however I feel that there is probably something important that I am missing. The error message that it throws is quite strange and I don't really feel that it means very much because we can fire the exact same message 5 minutes later and it will happily fill that field. I am positive that I am only sending the value 9999965.00 in this case. 2013-04-25 00:20:39,373 [ERROR] org.apache.solr.core.SolrCore org.apache.solr.common.SolrException: ERROR: [doc=1764656] Error adding field 'maxPrice'='java.math.BigDecimal:9999965.0000' msg=For input string: "java.math.BigDecimal:9999965.0000' msg=For input string: "java.math.BigDecimal:9999965.0000" >---at >org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:300) >---at >org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73) >---at >org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:199) >---at >org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69) >---at >org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51) >---at >org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:451) >---at >org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:587) >---at >org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:346) >---at >org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100) >---at >org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.handleAdds(JsonLoader.java:387) >---at >org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.processUpdate(JsonLoader.java:112) >---at >org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.load(JsonLoader.java:96) >---at org.apache.solr.handler.loader.JsonLoader.load(JsonLoader.java:60) >---at >org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92) >---at >org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74) >---at >org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) >---at org.apache.solr.core.SolrCore.execute(SolrCore.java:1817) >---at >org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:639) >---at >org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:345) >---at >org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:141) >---at >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >---at >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >---at >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) >---at >org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >---at >org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) >---at >org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) >---at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931) >---at >org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >---at >org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >---at >org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) >---at >org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >---at >org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) >---at >java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) >---at >java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) >---at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NumberFormatException: For input string: "java.math.BigDecimal:9999965.0000" >---at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241) >---at java.lang.Float.parseFloat(Float.java:452) >---at org.apache.solr.schema.TrieField.createField(TrieField.java:598) >---at org.apache.solr.schema.TrieField.createFields(TrieField.java:655) >---at org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:180) >---at >org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:251) >---... 34 more The field in question (maxPrice) is defined as float and is one of many floats within the schema. Here is my SOLR configurations for the core: <abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError> <luceneMatchVersion>LUCENE_42</luceneMatchVersion> <indexConfig> <maxFieldLength>10000</maxFieldLength> <writeLockTimeout>1000</writeLockTimeout> <commitLockTimeout>10000</commitLockTimeout> <lockType>native</lockType> <useCompoundFile>false</useCompoundFile> <ramBufferSizeMB>32</ramBufferSizeMB> <mergeFactor>5</mergeFactor> <unlockOnStartup>false</unlockOnStartup> <reopenReaders>true</reopenReaders> <deletionPolicy class="solr.SolrDeletionPolicy"> <str name="maxCommitsToKeep">1</str> <str name="maxOptimizedCommitsToKeep">0</str> </deletionPolicy> <infoStream file="INFOSTREAM.txt">false</infoStream> </indexConfig> <jmx/> <updateHandler class="solr.DirectUpdateHandler2"> <updateLog> <str name="dir">${solr.data.dir:}</str> </updateLog> <maxPendingDeletes>100000</maxPendingDeletes> </updateHandler> <query> <maxBooleanClauses>1024</maxBooleanClauses> <filterCache class="solr.FastLRUCache" size="7100" initialSize="3550" autowarmCount="3550"/> <queryResultCache class="solr.FastLRUCache" size="11275" initialSize="5638" autowarmCount="2800"/> <documentCache class="solr.LRUCache" size="10000" initialSize="10000"/> <enableLazyFieldLoading>true</enableLazyFieldLoading> <queryResultWindowSize>96</queryResultWindowSize> <queryResultMaxDocsCached>200</queryResultMaxDocsCached> <listener event="newSearcher" class="solr.QuerySenderListener"> <arr name="queries"> </arr> </listener>- We had this exact same issue with SOLR 4.0 as well, similar to the issue faced in this Jira https://issues.apache.org/jira/browse/SOLR-4021 The strange thing is that this only happens sporadically which really throws me off. Has anyone experienced something like this? Thanks again, Dave Fennessy