Chris Hostetter napisał(a):
: I don't understand why SOLR returns and invalid XML file as a response
: in case when we insert a document with a field that is not defined
: in the Solr configuration. Is there any purpose for that?
:
: It would be nice if it returns a valid xml....

i think if you were adding only one doc, and it had a field problem, then
the response would be valid XML ... but it looks like you are adding
multiple docs, in which case even a success isn't valid XML at the
moment...

        http://issues.apache.org/jira/browse/SOLR-2

...can you verify that this is really the same bug (two seperate <result>
blocks because of adding two seperate docs in a single request) ... or is
there something i'm missing in your example error besides that?

No, it is not the same bug. Not to the end. I'm inserting one new document in one request:


<add>
 <doc>
   <field name="level_0">invoice</field>
   <field name="aaa">bbb</field>
<field name="internal_id">10E3B793A84559081D1EF0BA6BD0BB5E1417573EC5D</field>
 </doc>
</add>

The field "aaa" doesn't exist and I get an error:

<result status="400">ERROR:unknown field 'aaa'</result><result status="1">org.xmlpull.v1.XmlPullParserException: expected START_TAG or END_TAG not END_DOCUMENT (position: END_DOCUMENT seen ...&lt;/doc&gt;\n&lt;/add&gt;\n... @9:1)
   at org.xmlpull.mxp1.MXParser.nextTag(MXParser.java:1083)
   at org.apache.solr.core.SolrCore.update(SolrCore.java:681)
at org.apache.solr.servlet.SolrUpdateServlet.doPost(SolrUpdateServlet.java:52)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   at java.lang.Thread.run(Thread.java:595)
</result>

The same stacktrace is shown in Tomcat output console.

Generally, there are problems with error messages coming from SOLR.
Sometimes they come with 400 HTTP code and in error stream. e.g. when we specify a field that doesn't exist in a query. Sometimes they come with no HTTP error code using
normal stream ( the stack trace above).
Additionally it is hard to find out what kind of error happend... Maybe the status varialble should
tell something about the type of error...

regards
Przemek


: <result status="400">ERROR:unknown field 'aaa'</result><result
: status="1">org.xmlpull.v1.XmlPullParserException: expected START_TAG or
: END_TAG not END_DOCUMENT (position: END_DOCUMENT seen
: ...&lt;/doc&gt;\n&lt;/add&gt;\n... @9:1)
:     at org.xmlpull.mxp1.MXParser.nextTag(MXParser.java:1083)
:    at org.apache.solr.core.SolrCore.update(SolrCore.java:681)
:     at
: org.apache.solr.servlet.SolrUpdateServlet.doPost(SolrUpdateServlet.java:52)
:     at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
:     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
:    at
: 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
:     at
: 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
:    at
: 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
:     at
: 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
:     at
: org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
:     at
: org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
:     at
: 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
:     at
: org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
:    at
: org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
:     at
: 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
:     at
: 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
:     at
: 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
:     at
: 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
:  at java.lang.Thread.run(Thread.java:595)
: </result>
:
:
: ----------------------------------------------------------------------
: Jestes kierowca? To poczytaj! >>> http://link.interia.pl/f199e
:



-Hoss




----------------------------------------------------------------------
Czas pozegnac finansowe problemy.
Kredyt Citibank - prosty kredyt na wszystkie potrzeby.
Sprawdz: http://link.interia.pl/f19a5

Reply via email to