FYI, here's a stack trace from the same program but in this case its the
query component under load.

This is very consistent as well after about 10 -20k requests

 

 

com.marklogic.xcc.exceptions.ServerConnectionException: Error parsing
HTTP headers: Premature EOF, partial header line read: ''

 [Session: user=DLEE, cb={default} [ContentSource: user=DLEE, cb={none}
[provider: address=home/192.168.1.10:8011, pool=0/64]]]

                at
com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(Abs
tractRequestController.java:99)

                at
com.marklogic.xcc.impl.SessionImpl.submitRequest(SessionImpl.java:280)

                at org.xmlsh.marklogic.put.setChecksum(put.java:341)

                at org.xmlsh.marklogic.put.flushContent(put.java:315)

                at org.xmlsh.marklogic.put.putContent(put.java:288)

                at org.xmlsh.marklogic.put.load(put.java:272)

                at org.xmlsh.marklogic.put.load(put.java:266)

                at org.xmlsh.marklogic.put.run(put.java:126)

                at org.xmlsh.core.XCommand.run(XCommand.java:86)

                at org.xmlsh.core.XCommand.run(XCommand.java:63)

                at
org.xmlsh.sh.core.SimpleCommand.exec(SimpleCommand.java:121)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.core.Pipeline.exec(Pipeline.java:124)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.shell.Shell.runScript(Shell.java:362)

                at
org.xmlsh.core.ScriptCommand.run(ScriptCommand.java:75)

                at
org.xmlsh.sh.core.SimpleCommand.exec(SimpleCommand.java:121)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.core.Pipeline.exec(Pipeline.java:124)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.shell.Shell.runScript(Shell.java:362)

                at
org.xmlsh.core.ScriptCommand.run(ScriptCommand.java:75)

                at
org.xmlsh.sh.core.SimpleCommand.exec(SimpleCommand.java:121)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.core.Pipeline.exec(Pipeline.java:124)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.shell.Shell.interactive(Shell.java:461)

                at org.xmlsh.commands.builtin.xmlsh.run(xmlsh.java:82)

                at
org.xmlsh.core.BuiltinCommand.run(BuiltinCommand.java:54)

                at org.xmlsh.sh.shell.Shell.main(Shell.java:690)

Caused by: java.io.IOException: Error parsing HTTP headers: Premature
EOF, partial header line read: ''

                at
com.marklogic.http.HttpHeaders.nextHeaderLine(HttpHeaders.java:326)

                at
com.marklogic.http.HttpHeaders.parseResponseHeaders(HttpHeaders.java:287
)

                at
com.marklogic.http.HttpChannel.parseHeaders(HttpChannel.java:323)

                at
com.marklogic.http.HttpChannel.receiveMode(HttpChannel.java:293)

                at
com.marklogic.http.HttpChannel.getResponseCode(HttpChannel.java:187)

                at
com.marklogic.xcc.impl.handlers.EvalRequestController.issueRequest(EvalR
equestController.java:111)

                at
com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog(EvalR
equestController.java:62)

                at
com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(Abs
tractRequestController.java:72)

                ... 29 more

 

 

 

From: general-boun...@developer.marklogic.com
[mailto:general-boun...@developer.marklogic.com] On Behalf Of Lee, David
Sent: Saturday, March 13, 2010 7:42 PM
To: General Mark Logic Developer Discussion
Subject: RE: [MarkLogic Dev General]
ServerConnectionException-consistantly after about 20, 000 files

 

Here's a full stack trace, including my code in the stack.

by "opening connections" I mean calling 

 

     URI serverUri = new URI (connect);

     ContentSource cs = ContentSourceFactory.newContentSource
(serverUri);

 

for ever file instead of reusing the ContentSource for all files.

Although that may be a red-herring ... when I do it that way (new
Content Source for each file) I'm not aborting the push operation if one
file fails so I may be missing these errors in that case.

 

--------- Stack Trace

 

 

 

2010-03-13 16:17:13,748 12310138 ERROR [main] core.SimpleCommand -
Exception running command: ml:put

com.marklogic.xcc.exceptions.ServerConnectionException: An established
connection was aborted by the software in your host machine

 [Session: user=DLEE, cb={default} [ContentSource: user=DLEE, cb={none}
[provider: address=home/192.168.1.10:8011, pool=0/64]]]

                at
com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(Abs
tractRequestController.java:99)

                at
com.marklogic.xcc.impl.SessionImpl.insertContent(SessionImpl.java:204)

                at org.xmlsh.marklogic.put.load(put.java:180)

                at org.xmlsh.marklogic.put.load(put.java:171)

                at org.xmlsh.marklogic.put.run(put.java:99)

                at org.xmlsh.core.XCommand.run(XCommand.java:86)

                at org.xmlsh.core.XCommand.run(XCommand.java:63)

                at
org.xmlsh.sh.core.SimpleCommand.exec(SimpleCommand.java:121)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.core.Pipeline.exec(Pipeline.java:124)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.shell.Shell.runScript(Shell.java:362)

                at
org.xmlsh.core.ScriptCommand.run(ScriptCommand.java:75)

                at
org.xmlsh.sh.core.SimpleCommand.exec(SimpleCommand.java:121)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.core.Pipeline.exec(Pipeline.java:124)

                at org.xmlsh.sh.shell.Shell.exec(Shell.java:560)

                at org.xmlsh.sh.shell.Shell.interactive(Shell.java:461)

                at org.xmlsh.commands.builtin.xmlsh.run(xmlsh.java:82)

                at
org.xmlsh.core.BuiltinCommand.run(BuiltinCommand.java:54)

                at org.xmlsh.sh.shell.Shell.main(Shell.java:690)

Caused by: java.io.IOException: An established connection was aborted by
the software in your host machine

                at sun.nio.ch.SocketDispatcher.write0(Native Method)

                at
sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33)

                at
sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)

                at sun.nio.ch.IOUtil.write(IOUtil.java:60)

                at
sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)

                at
com.marklogic.http.HttpChannel.writeBuffer(HttpChannel.java:373)

                at
com.marklogic.http.HttpChannel.writeBody(HttpChannel.java:353)

                at
com.marklogic.http.HttpChannel.flushRequest(HttpChannel.java:346)

                at
com.marklogic.http.HttpChannel.write(HttpChannel.java:134)

                at
com.marklogic.xcc.impl.handlers.ContentInsertController.writeChunkHeader
(ContentInsertController.java:299)

                at
com.marklogic.xcc.impl.handlers.ContentInsertController.issueRequest(Con
tentInsertController.java:210)

                at
com.marklogic.xcc.impl.handlers.ContentInsertController.serverDialog(Con
tentInsertController.java:112)

                at
com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest(Abs
tractRequestController.java:72)

                ... 20 more

 

 

 

 

 

From: general-boun...@developer.marklogic.com
[mailto:general-boun...@developer.marklogic.com] On Behalf Of Sam Neth
Sent: Saturday, March 13, 2010 6:08 PM
To: General Mark Logic Developer Discussion
Subject: Re: [MarkLogic Dev General] ServerConnectionException
-consistantly after about 20, 000 files

 

Could you post a stack trace?

 

What version of XCC are you using?

 

What specifically are you referring to when you talk about "opening
connections"?

 

On Mar 13, 2010, at 2:33 PM, Lee, David wrote:

 

If I use XCC to iteratively insert a large set of documents I
consistently get this error

 

com.marklogic.xcc.exceptions.ServerConnectionException: An established
connectin was aborted by the software in your host machine [Session:
user=DLEE, cb={default} [ContentSource: user=DLEE, cb={none} [providr:
address=home/192.168.1.10:8011, pool=0/64]]]

 

 

This occurs after about 20,000 files and aborts the program.

I'm thinking of implementing a exception handler to retry but I dont
want to be retrying after more serious errors.

The server log doesnt show any problems, and this is on a dedicated 1GB
wired LAN so I dont think its internet problems.

 

If instead of using the same connection I open the connection for each
file it often gets around this problem, but not always,

I think its getting around it because I'm not aborting on error in that
case (just going to the next file).

 

I'm using this code snippet to create the content in bulks of 1-20 (
files in a directory )

 

Content content= ContentFactory.newContent (uri, file, mCreateOptions);

contents.add(content);

...

          

if( ! contents.isEmpty() )

     session.insertContent (contents.toArray(new Content[
contents.size()]));

 

 

 

Any suggestions ?

 

 

 

----------------------------------------

David A. Lee

Senior Principal Software Engineer

Epocrates, Inc.

d...@epocrates.com

812-482-5224

 

_______________________________________________
General mailing list
General@developer.marklogic.com
http://xqzone.com/mailman/listinfo/general

 

_______________________________________________
General mailing list
General@developer.marklogic.com
http://xqzone.com/mailman/listinfo/general

Reply via email to