From: Ben B. <be...@gr...> - 2008-06-23 22:01:09
|
I was doing some benchmarking of my application, a small Pylons (python web framework) web application using a libcurl binding to talk to eXist's REST API. It works quite nicely and is fairly fast, however, I noticed that when benchmarking it, on occasion (1 out of 1500 requests), I would see exceptions in eXist like this go by: 23 Jun 2008 14:54:50,068 [P1-11] ERROR (ServletHandler.java [handle]: 593) - /exist/rest/db/pylonshq/xquery/tracebacks.xq: java.util.NoSuchElementException at org .exist.stax.EmbeddedXMLStreamReader.next(EmbeddedXMLStreamReader.java: 219) at org.exist.dom.NodeProxy.directSelectAttribute(NodeProxy.java:1298) at org.exist.dom.NodeSetHelper.directSelectAttributes(NodeSetHelper.java: 548) at org .exist.dom.AbstractNodeSet.directSelectAttribute(AbstractNodeSet.java: 301) at org.exist.xquery.LocationStep.getAttributes(LocationStep.java:475) at org.exist.xquery.LocationStep.eval(LocationStep.java:317) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.Atomize.eval(Atomize.java:63) at org.exist.xquery.CastExpression.eval(CastExpression.java:94) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:68) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java: 251) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java: 251) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.LetExpr.eval(LetExpr.java:203) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.ForExpr.eval(ForExpr.java:293) at org.exist.xquery.BindingExpression.eval(BindingExpression.java:144) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java: 122) at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:224) at org.exist.xquery.FunctionCall.eval(FunctionCall.java:162) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:68) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java: 251) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java: 99) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java: 101) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.LetExpr.eval(LetExpr.java:150) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.BindingExpression.eval(BindingExpression.java:144) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.XQuery.execute(XQuery.java:217) at org.exist.xquery.XQuery.execute(XQuery.java:184) at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1184) at org.exist.http.RESTServer.doGet(RESTServer.java:428) at org.exist.http.servlets.EXistServlet.doGet(EXistServlet.java:326) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 428) at org .mortbay .jetty .servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org .mortbay .jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java: 633) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java: 245) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) 23 Jun 2008 14:54:53,121 [P1-10] ERROR (ServletHandler.java [handle]: 593) - /exist/rest/db/pylonshq/xquery/tracebacks.xq: java.lang.NullPointerException at org .exist .stax.EmbeddedXMLStreamReader.getNode(EmbeddedXMLStreamReader.java:489) at org.exist.dom.NodeProxy.directSelectAttribute(NodeProxy.java:1306) at org.exist.dom.NodeSetHelper.directSelectAttributes(NodeSetHelper.java: 548) at org .exist.dom.AbstractNodeSet.directSelectAttribute(AbstractNodeSet.java: 301) at org.exist.xquery.LocationStep.getAttributes(LocationStep.java:475) at org.exist.xquery.LocationStep.eval(LocationStep.java:317) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.Atomize.eval(Atomize.java:63) at org.exist.xquery.CastExpression.eval(CastExpression.java:94) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:68) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java: 251) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java: 251) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.LetExpr.eval(LetExpr.java:203) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.ForExpr.eval(ForExpr.java:293) at org.exist.xquery.BindingExpression.eval(BindingExpression.java:144) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java: 122) at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:224) at org.exist.xquery.FunctionCall.eval(FunctionCall.java:162) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:68) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java: 251) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java: 99) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java: 101) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.LetExpr.eval(LetExpr.java:150) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.LetExpr.eval(LetExpr.java:201) at org.exist.xquery.BindingExpression.eval(BindingExpression.java:144) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.PathExpr.eval(PathExpr.java:238) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:59) at org.exist.xquery.XQuery.execute(XQuery.java:217) at org.exist.xquery.XQuery.execute(XQuery.java:184) at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1184) at org.exist.http.RESTServer.doGet(RESTServer.java:428) at org.exist.http.servlets.EXistServlet.doGet(EXistServlet.java:326) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 428) at org .mortbay .jetty .servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org .mortbay .jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java: 633) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java: 245) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) Is this normal for eXist under heavy load? I was only using 5 concurrent connections at once for this load test. Is there any settings I should tweak for eXist? Thanks, Ben |