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 Sai Gadde <ga...@gmail.com> on 2013/10/28 12:10:41 UTC

Solr 4.5.1 replication Bug? "Illegal to have multiple roots (start tag in epilog?)."

we have a similar error as this thread.

http://www.mail-archive.com/solr-user@lucene.apache.org/msg90748.html

Tried tomcat setting from this post. We used exact setting sepecified
here. we merge 500 documents at a time. I am creating a new thread
because Michael is using Jetty where as we use Tomcat.


formdataUploadLimitInKB and multipartUploadLimitInKB limits are set to very
high value 2GB. As suggested in the following thread.
https://issues.apache.org/jira/browse/SOLR-5331


We use out of the box Solr 4.5.1 no customization done. If we merge
documents via SolrJ to a single server it is perfectly working fine.


 But as soon as we add another node to the cloud we are getting
following while merging documents.



This is the error we are getting on the server (10.10.10.116 - IP is
irrelavent just for clarity)where merging is happening. 10.10.10.119
is the new node here. This server gets RemoteSolrException


shard update error StdNode:
http://10.10.10.119:8980/solr/mycore/:org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
Illegal to have multiple roots (start tag in epilog?).
 at [row,col {unknown-source}]: [1,12468]
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
	at org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:401)
	at org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:1)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)





On the other server 10.10.10.119 we get following error


org.apache.solr.common.SolrException: Illegal to have multiple roots
(start tag in epilog?).
 at [row,col {unknown-source}]: [1,12468]
	at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:176)
	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:1859)
	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
	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:936)
	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$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal to have
multiple roots (start tag in epilog?).
 at [row,col {unknown-source}]: [1,12369]
	at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
	at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
	at com.ctc.wstx.sr.BasicStreamReader.handleExtraRoot(BasicStreamReader.java:2155)
	at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2070)
	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2647)
	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
	at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:213)
	at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:174)
	... 22 more



We tried with 4.5.0 first and then with 4.5.1 later. Both produce
exact same error.


Any ideas regarding how to resolve this? or is this a bug?

Looks like it is a common error as it affects cloud setup and there
must a workaround but we cannot figure it out. Any help appreciated.


Thanks in advance

Sai

Re: Solr 4.5.1 replication Bug? "Illegal to have multiple roots (start tag in epilog?)."

Posted by Sai Gadde <ga...@gmail.com>.
I just opened a JIRA issue https://issues.apache.org/jira/browse/SOLR-5402

SOLR-5331 was closed and i could not open it again so, created a new one.

Thanks
Sai


On Wed, Oct 30, 2013 at 5:49 AM, Mark Miller <ma...@gmail.com> wrote:

> Has someone filed a JIRA issue with the current known info yet?
>
> - Mark
>
> > On Oct 29, 2013, at 12:36 AM, Sai Gadde <ga...@gmail.com> wrote:
> >
> > Hi Michael,
> >
> > I downgraded to Solr 4.4.0 and this issue is gone. No additional settings
> > or tweaks are done.
> >
> > This is not a fix or solution I guess but, in our case we wanted
> something
> > working and we were running out of time.
> >
> > I will watch this thread if there are any suggestions but, possibly we
> will
> > stay with 4.4.0 for sometime.
> >
> > Regards
> > Sai
> >
> >
> >> On Tue, Oct 29, 2013 at 4:36 AM, Michael Tracey <mt...@biblio.com>
> wrote:
> >>
> >> Hey, this is Michael, who was having the exact error on the Jetty side
> >> with an update.  I've upgraded jetty from the 4.5.1 embedded version (in
> >> the example directory) to version 9.0.6, which means I had to upgrade my
> >> OpenJDK from 1.6 to 1.7.0_45.  Also, I added the suggested (very large)
> >> settings to my solrconfig.xml:
> >>
> >> <requestParsers enableRemoteStreaming="true"
> >> formdataUploadLimitInKB="2048000" multipartUploadLimitInKB="2048000" />
> >>
> >> but I am still getting the errors when I put a second server in the
> cloud.
> >> Single servers (external zookeeper, but no cloud partner) works just
> fine.
> >>
> >> I suppose my next step is to try Tomcat, but according to your post, it
> >> will not help!
> >>
> >> Any help is appreciated,
> >>
> >> M.
> >>
> >> ----- Original Message -----
> >> From: "Sai Gadde" <ga...@gmail.com>
> >> To: solr-user@lucene.apache.org
> >> Sent: Monday, October 28, 2013 7:10:41 AM
> >> Subject: Solr 4.5.1 replication Bug? "Illegal to have multiple roots
> >> (start tag in epilog?)."
> >>
> >> we have a similar error as this thread.
> >>
> >> http://www.mail-archive.com/solr-user@lucene.apache.org/msg90748.html
> >>
> >> Tried tomcat setting from this post. We used exact setting sepecified
> >> here. we merge 500 documents at a time. I am creating a new thread
> >> because Michael is using Jetty where as we use Tomcat.
> >>
> >>
> >> formdataUploadLimitInKB and multipartUploadLimitInKB limits are set to
> very
> >> high value 2GB. As suggested in the following thread.
> >> https://issues.apache.org/jira/browse/SOLR-5331
> >>
> >>
> >> We use out of the box Solr 4.5.1 no customization done. If we merge
> >> documents via SolrJ to a single server it is perfectly working fine.
> >>
> >>
> >> But as soon as we add another node to the cloud we are getting
> >> following while merging documents.
> >>
> >>
> >>
> >> This is the error we are getting on the server (10.10.10.116 - IP is
> >> irrelavent just for clarity)where merging is happening. 10.10.10.119
> >> is the new node here. This server gets RemoteSolrException
> >>
> >>
> >> shard update error StdNode:
> >>
> >>
> http://10.10.10.119:8980/solr/mycore/:org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException
> >> :
> >> Illegal to have multiple roots (start tag in epilog?).
> >> at [row,col {unknown-source}]: [1,12468]
> >>        at
> >>
> org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
> >>        at
> >>
> org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
> >>        at
> >>
> org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:401)
> >>        at
> >>
> org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:1)
> >>        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
> >>        at java.util.concurrent.FutureTask.run(Unknown Source)
> >>        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
> >> Source)
> >>        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
> >>        at java.util.concurrent.FutureTask.run(Unknown Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> >> Source)
> >>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >> Source)
> >>        at java.lang.Thread.run(Unknown Source)
> >>
> >>
> >>
> >>
> >>
> >> On the other server 10.10.10.119 we get following error
> >>
> >>
> >> org.apache.solr.common.SolrException: Illegal to have multiple roots
> >> (start tag in epilog?).
> >> at [row,col {unknown-source}]: [1,12468]
> >>        at
> >> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:176)
> >>        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:1859)
> >>        at
> >>
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703)
> >>        at
> >>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406)
> >>        at
> >>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
> >>        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:936)
> >>        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$Worker.runTask(ThreadPoolExecutor.java:886)
> >>        at
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >>        at java.lang.Thread.run(Thread.java:662)
> >> Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal to have
> >> multiple roots (start tag in epilog?).
> >> at [row,col {unknown-source}]: [1,12369]
> >>        at
> >>
> com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
> >>        at
> >> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
> >>        at
> >>
> com.ctc.wstx.sr.BasicStreamReader.handleExtraRoot(BasicStreamReader.java:2155)
> >>        at
> >>
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2070)
> >>        at
> >>
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2647)
> >>        at
> >> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> >>        at
> >>
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:213)
> >>        at
> >> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:174)
> >>        ... 22 more
> >>
> >>
> >>
> >> We tried with 4.5.0 first and then with 4.5.1 later. Both produce
> >> exact same error.
> >>
> >>
> >> Any ideas regarding how to resolve this? or is this a bug?
> >>
> >> Looks like it is a common error as it affects cloud setup and there
> >> must a workaround but we cannot figure it out. Any help appreciated.
> >>
> >>
> >> Thanks in advance
> >>
> >> Sai
> >>
>

Re: Solr 4.5.1 replication Bug? "Illegal to have multiple roots (start tag in epilog?)."

Posted by Mark Miller <ma...@gmail.com>.
Has someone filed a JIRA issue with the current known info yet?

- Mark

> On Oct 29, 2013, at 12:36 AM, Sai Gadde <ga...@gmail.com> wrote:
> 
> Hi Michael,
> 
> I downgraded to Solr 4.4.0 and this issue is gone. No additional settings
> or tweaks are done.
> 
> This is not a fix or solution I guess but, in our case we wanted something
> working and we were running out of time.
> 
> I will watch this thread if there are any suggestions but, possibly we will
> stay with 4.4.0 for sometime.
> 
> Regards
> Sai
> 
> 
>> On Tue, Oct 29, 2013 at 4:36 AM, Michael Tracey <mt...@biblio.com> wrote:
>> 
>> Hey, this is Michael, who was having the exact error on the Jetty side
>> with an update.  I've upgraded jetty from the 4.5.1 embedded version (in
>> the example directory) to version 9.0.6, which means I had to upgrade my
>> OpenJDK from 1.6 to 1.7.0_45.  Also, I added the suggested (very large)
>> settings to my solrconfig.xml:
>> 
>> <requestParsers enableRemoteStreaming="true"
>> formdataUploadLimitInKB="2048000" multipartUploadLimitInKB="2048000" />
>> 
>> but I am still getting the errors when I put a second server in the cloud.
>> Single servers (external zookeeper, but no cloud partner) works just fine.
>> 
>> I suppose my next step is to try Tomcat, but according to your post, it
>> will not help!
>> 
>> Any help is appreciated,
>> 
>> M.
>> 
>> ----- Original Message -----
>> From: "Sai Gadde" <ga...@gmail.com>
>> To: solr-user@lucene.apache.org
>> Sent: Monday, October 28, 2013 7:10:41 AM
>> Subject: Solr 4.5.1 replication Bug? "Illegal to have multiple roots
>> (start tag in epilog?)."
>> 
>> we have a similar error as this thread.
>> 
>> http://www.mail-archive.com/solr-user@lucene.apache.org/msg90748.html
>> 
>> Tried tomcat setting from this post. We used exact setting sepecified
>> here. we merge 500 documents at a time. I am creating a new thread
>> because Michael is using Jetty where as we use Tomcat.
>> 
>> 
>> formdataUploadLimitInKB and multipartUploadLimitInKB limits are set to very
>> high value 2GB. As suggested in the following thread.
>> https://issues.apache.org/jira/browse/SOLR-5331
>> 
>> 
>> We use out of the box Solr 4.5.1 no customization done. If we merge
>> documents via SolrJ to a single server it is perfectly working fine.
>> 
>> 
>> But as soon as we add another node to the cloud we are getting
>> following while merging documents.
>> 
>> 
>> 
>> This is the error we are getting on the server (10.10.10.116 - IP is
>> irrelavent just for clarity)where merging is happening. 10.10.10.119
>> is the new node here. This server gets RemoteSolrException
>> 
>> 
>> shard update error StdNode:
>> 
>> http://10.10.10.119:8980/solr/mycore/:org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException
>> :
>> Illegal to have multiple roots (start tag in epilog?).
>> at [row,col {unknown-source}]: [1,12468]
>>        at
>> org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
>>        at
>> org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
>>        at
>> org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:401)
>>        at
>> org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:1)
>>        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>>        at java.util.concurrent.FutureTask.run(Unknown Source)
>>        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
>> Source)
>>        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>>        at java.util.concurrent.FutureTask.run(Unknown Source)
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>> Source)
>>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
>> Source)
>>        at java.lang.Thread.run(Unknown Source)
>> 
>> 
>> 
>> 
>> 
>> On the other server 10.10.10.119 we get following error
>> 
>> 
>> org.apache.solr.common.SolrException: Illegal to have multiple roots
>> (start tag in epilog?).
>> at [row,col {unknown-source}]: [1,12468]
>>        at
>> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:176)
>>        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:1859)
>>        at
>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703)
>>        at
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406)
>>        at
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
>>        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:936)
>>        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$Worker.runTask(ThreadPoolExecutor.java:886)
>>        at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>        at java.lang.Thread.run(Thread.java:662)
>> Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal to have
>> multiple roots (start tag in epilog?).
>> at [row,col {unknown-source}]: [1,12369]
>>        at
>> com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
>>        at
>> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
>>        at
>> com.ctc.wstx.sr.BasicStreamReader.handleExtraRoot(BasicStreamReader.java:2155)
>>        at
>> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2070)
>>        at
>> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2647)
>>        at
>> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
>>        at
>> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:213)
>>        at
>> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:174)
>>        ... 22 more
>> 
>> 
>> 
>> We tried with 4.5.0 first and then with 4.5.1 later. Both produce
>> exact same error.
>> 
>> 
>> Any ideas regarding how to resolve this? or is this a bug?
>> 
>> Looks like it is a common error as it affects cloud setup and there
>> must a workaround but we cannot figure it out. Any help appreciated.
>> 
>> 
>> Thanks in advance
>> 
>> Sai
>> 

Re: Solr 4.5.1 replication Bug? "Illegal to have multiple roots (start tag in epilog?)."

Posted by Sai Gadde <ga...@gmail.com>.
Hi Michael,

I downgraded to Solr 4.4.0 and this issue is gone. No additional settings
or tweaks are done.

This is not a fix or solution I guess but, in our case we wanted something
working and we were running out of time.

I will watch this thread if there are any suggestions but, possibly we will
stay with 4.4.0 for sometime.

Regards
Sai


On Tue, Oct 29, 2013 at 4:36 AM, Michael Tracey <mt...@biblio.com> wrote:

> Hey, this is Michael, who was having the exact error on the Jetty side
> with an update.  I've upgraded jetty from the 4.5.1 embedded version (in
> the example directory) to version 9.0.6, which means I had to upgrade my
> OpenJDK from 1.6 to 1.7.0_45.  Also, I added the suggested (very large)
> settings to my solrconfig.xml:
>
> <requestParsers enableRemoteStreaming="true"
> formdataUploadLimitInKB="2048000" multipartUploadLimitInKB="2048000" />
>
> but I am still getting the errors when I put a second server in the cloud.
> Single servers (external zookeeper, but no cloud partner) works just fine.
>
> I suppose my next step is to try Tomcat, but according to your post, it
> will not help!
>
> Any help is appreciated,
>
> M.
>
> ----- Original Message -----
> From: "Sai Gadde" <ga...@gmail.com>
> To: solr-user@lucene.apache.org
> Sent: Monday, October 28, 2013 7:10:41 AM
> Subject: Solr 4.5.1 replication Bug? "Illegal to have multiple roots
> (start tag in epilog?)."
>
> we have a similar error as this thread.
>
> http://www.mail-archive.com/solr-user@lucene.apache.org/msg90748.html
>
> Tried tomcat setting from this post. We used exact setting sepecified
> here. we merge 500 documents at a time. I am creating a new thread
> because Michael is using Jetty where as we use Tomcat.
>
>
> formdataUploadLimitInKB and multipartUploadLimitInKB limits are set to very
> high value 2GB. As suggested in the following thread.
> https://issues.apache.org/jira/browse/SOLR-5331
>
>
> We use out of the box Solr 4.5.1 no customization done. If we merge
> documents via SolrJ to a single server it is perfectly working fine.
>
>
>  But as soon as we add another node to the cloud we are getting
> following while merging documents.
>
>
>
> This is the error we are getting on the server (10.10.10.116 - IP is
> irrelavent just for clarity)where merging is happening. 10.10.10.119
> is the new node here. This server gets RemoteSolrException
>
>
> shard update error StdNode:
>
> http://10.10.10.119:8980/solr/mycore/:org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException
> :
> Illegal to have multiple roots (start tag in epilog?).
>  at [row,col {unknown-source}]: [1,12468]
>         at
> org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
>         at
> org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
>         at
> org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:401)
>         at
> org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:1)
>         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
> Source)
>         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
>
>
>
>
>
> On the other server 10.10.10.119 we get following error
>
>
> org.apache.solr.common.SolrException: Illegal to have multiple roots
> (start tag in epilog?).
>  at [row,col {unknown-source}]: [1,12468]
>         at
> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:176)
>         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:1859)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
>         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:936)
>         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$Worker.runTask(ThreadPoolExecutor.java:886)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal to have
> multiple roots (start tag in epilog?).
>  at [row,col {unknown-source}]: [1,12369]
>         at
> com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
>         at
> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
>         at
> com.ctc.wstx.sr.BasicStreamReader.handleExtraRoot(BasicStreamReader.java:2155)
>         at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2070)
>         at
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2647)
>         at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
>         at
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:213)
>         at
> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:174)
>         ... 22 more
>
>
>
> We tried with 4.5.0 first and then with 4.5.1 later. Both produce
> exact same error.
>
>
> Any ideas regarding how to resolve this? or is this a bug?
>
> Looks like it is a common error as it affects cloud setup and there
> must a workaround but we cannot figure it out. Any help appreciated.
>
>
> Thanks in advance
>
> Sai
>

Re: Solr 4.5.1 replication Bug? "Illegal to have multiple roots (start tag in epilog?)."

Posted by Michael Tracey <mt...@biblio.com>.
Hey, this is Michael, who was having the exact error on the Jetty side with an update.  I've upgraded jetty from the 4.5.1 embedded version (in the example directory) to version 9.0.6, which means I had to upgrade my OpenJDK from 1.6 to 1.7.0_45.  Also, I added the suggested (very large) settings to my solrconfig.xml: 

<requestParsers enableRemoteStreaming="true" formdataUploadLimitInKB="2048000" multipartUploadLimitInKB="2048000" />

but I am still getting the errors when I put a second server in the cloud. Single servers (external zookeeper, but no cloud partner) works just fine.

I suppose my next step is to try Tomcat, but according to your post, it will not help!

Any help is appreciated,

M.

----- Original Message -----
From: "Sai Gadde" <ga...@gmail.com>
To: solr-user@lucene.apache.org
Sent: Monday, October 28, 2013 7:10:41 AM
Subject: Solr 4.5.1 replication Bug? "Illegal to have multiple roots (start tag in epilog?)."

we have a similar error as this thread.

http://www.mail-archive.com/solr-user@lucene.apache.org/msg90748.html

Tried tomcat setting from this post. We used exact setting sepecified
here. we merge 500 documents at a time. I am creating a new thread
because Michael is using Jetty where as we use Tomcat.


formdataUploadLimitInKB and multipartUploadLimitInKB limits are set to very
high value 2GB. As suggested in the following thread.
https://issues.apache.org/jira/browse/SOLR-5331


We use out of the box Solr 4.5.1 no customization done. If we merge
documents via SolrJ to a single server it is perfectly working fine.


 But as soon as we add another node to the cloud we are getting
following while merging documents.



This is the error we are getting on the server (10.10.10.116 - IP is
irrelavent just for clarity)where merging is happening. 10.10.10.119
is the new node here. This server gets RemoteSolrException


shard update error StdNode:
http://10.10.10.119:8980/solr/mycore/:org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
Illegal to have multiple roots (start tag in epilog?).
 at [row,col {unknown-source}]: [1,12468]
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:425)
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
	at org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:401)
	at org.apache.solr.update.SolrCmdDistributor$1.call(SolrCmdDistributor.java:1)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)





On the other server 10.10.10.119 we get following error


org.apache.solr.common.SolrException: Illegal to have multiple roots
(start tag in epilog?).
 at [row,col {unknown-source}]: [1,12468]
	at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:176)
	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:1859)
	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:703)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:406)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
	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:936)
	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$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal to have
multiple roots (start tag in epilog?).
 at [row,col {unknown-source}]: [1,12369]
	at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
	at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:461)
	at com.ctc.wstx.sr.BasicStreamReader.handleExtraRoot(BasicStreamReader.java:2155)
	at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2070)
	at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2647)
	at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
	at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:213)
	at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:174)
	... 22 more



We tried with 4.5.0 first and then with 4.5.1 later. Both produce
exact same error.


Any ideas regarding how to resolve this? or is this a bug?

Looks like it is a common error as it affects cloud setup and there
must a workaround but we cannot figure it out. Any help appreciated.


Thanks in advance

Sai