Concurrent modification exception in connection pool on high load
-----------------------------------------------------------------
Key: GEOT-1271
URL: http://jira.codehaus.org/browse/GEOT-1271
Project: GeoTools
Issue Type: Improvement
Components: data jdbc
Affects Versions: 2.3.1
Reporter: Andrea Aime
Assignee: Andrea Aime
Fix For: 2.3.2, 2.4.M3
Hitting geoserver with lots of clients threads I was able to get the following
exception:
18 mag 19:28:42 ERROR [geotools.rendering] -
java.util.ConcurrentModificationException
at
java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
at java.util.LinkedList$ListItr.next(LinkedList.java:696)
at
org.geotools.data.jdbc.ConnectionPool.getInUseManagedPooledConnection(ConnectionPool.java:148)
at
org.geotools.data.jdbc.ConnectionPool.access$200(ConnectionPool.java:44)
at
org.geotools.data.jdbc.ConnectionPool$ConnectionListManager.connectionClosed(ConnectionPool.java:225)
at
org.postgresql.ds.common.PooledConnectionImpl.fireConnectionClosed(PooledConnectionImpl.java:175)
at
org.postgresql.ds.common.PooledConnectionImpl$ConnectionHandler.invoke(PooledConnectionImpl.java:331)
at $Proxy0.close(Unknown Source)
at org.geotools.data.jdbc.JDBCUtils.close(JDBCUtils.java:149)
at org.geotools.data.jdbc.QueryData.close(QueryData.java:171)
at
org.geotools.data.jdbc.JDBCFeatureReader.close(JDBCFeatureReader.java:63)
at
org.geotools.data.jdbc.JDBCFeatureReader.close(JDBCFeatureReader.java:59)
at
org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1580)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:714)
at
org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:436)
at
org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:262)
at
org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:316)
at
org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:516)
at
org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:315)
at org.geoserver.request.Dispatcher.dispatch(Dispatcher.java:192)
at
org.geoserver.request.Dispatcher.handleRequestInternal(Dispatcher.java:52)
at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:347)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050)
at
org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:103)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
at org.mortbay.jetty.Server.handle(Server.java:269)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:687)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:208)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
18 mag 19:28:44 ERROR [data.jdbc] - There's code leaving readers or writers
unclosed (you got an unclosed QueryData object, which is usually held by a
reader or a writer).
Call reader/writer.close() after using them to ensure they do not hold state
such as JDCB connections.
QueryData was open against feature type: tiger_roads
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel