We are having a problem with our usage of tomcat/hibernate/c3p0 wherein our site (seemingly randomly) hangs after users poke around in it. The site is unresponsive in this hung state and we have to restart the tomcat service. Our database seems to be fine as we can use the mysql command line to interact with it. We were able to get a stack trace once (all other threads were stopped at Object.wait()) during the locking but have not been able to get one again (we'll keep trying). There's nothing interesting in the hibernate or tomcat log (or at least nothing that looks like a pattern or terribly intersting to us). We've tried everything we can think of, we don't see any code doing anything silly, the database seems to be ok, there don't seem to be any exceptions, etc. Does anything pop into anyone's heads? Even just a technique to try and figure out the problem would help.
We are using the following versions of the listed tools:
hibernate version 2.0.3
hibernate extensions 2.0
tomcat 5.0.18
c3p0 0.8.4.5
Stack Trace:
Thread [http-8080-Processor14] (Suspended)
Object.wait(long) line: not available [native method]
GooGooStatementCache(Object).wait() line: 429
GooGooStatementCache.acquireStatement(Connection, Method, Object[])
line: 342
GooGooStatementCache.checkoutStatement(Connection, Method, Object[])
line: 97
C3P0PooledConnection$ProxyConnectionInvocationHandler.invoke(Object,
Method, Object[]) line: 596
$Proxy0.prepareStatement(String) line: not available
SessionFactoryImpl.getPreparedStatement(Connection, String, boolean)
line: 537
NonBatchingBatcher(BatcherImpl).prepareQueryStatement(String, boolean)
line: 56
QueryTranslator(Loader).prepareQueryStatement(String, Object[],
Type[], Map, RowSelection, boolean, SessionImplementor) line: 482
QueryTranslator(Loader).doFind(SessionImplementor, Object[], Type[],
Object, Serializable, PersistentCollection, Object, boolean,
RowSelection, Map, Map) line: 136
QueryTranslator(Loader).find(SessionImplementor, Object[], Type[],
boolean, RowSelection, Map, Map) line: 620
QueryTranslator.find(SessionImplementor, Object[], Type[], boolean,
RowSelection, Map, Map) line: 928
SessionImpl.find(String, Object[], Type[], RowSelection, Map, Map)
line: 1343
QueryImpl.list() line: 76
MixerManagerImpl$5(SessionWrappedFindExecutionStream).find() line: not
available
MixerManagerImpl.findByMixerKeys(Collection) line: not available
MixerManager.findByMixerKeys(Collection) line: not available
UserFacade.getMixersWithStatus(PersistentStatus) line: not available
UserFacade.getMixersInviteAccepted() line: not available
UserFacade.getMixersGoingTo() line: not available
GeneratedMethodAccessor232.invoke(Object, Object[]) line: not
available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object[]) line: 324
PropertySuffix(ArraySuffix).evaluate(Object, VariableResolver,
FunctionMapper, Logger) line: 314
ComplexValue.evaluate(VariableResolver, FunctionMapper, Logger) line:
145
ExpressionEvaluatorImpl.evaluate(String, Class, VariableResolver,
FunctionMapper, Logger) line: 263
ExpressionEvaluatorImpl.evaluate(String, Class, VariableResolver,
FunctionMapper) line: 190
PageContextImpl.proprietaryEvaluate(String, Class, PageContext,
ProtectedFunctionMapper, boolean) line: 899
ViewUserProfile_jsp._jspx_meth_c_set_2(JspTag, PageContext) line: 498
ViewUserProfile_jsp._jspx_meth_c_otherwise_5(JspTag, PageContext)
line: 106
ViewUserProfile_jsp._jspx_meth_c_choose_5(JspTag, PageContext) line:
78
ViewUserProfile_jsp._jspx_meth_c_otherwise_4(JspTag, PageContext)
line: 76
ViewUserProfile_jsp._jspx_meth_c_choose_4(JspTag, PageContext) line:
46
ViewUserProfile_jsp._jspx_meth_c_otherwise_1(JspTag, PageContext)
line: 19
ViewUserProfile_jsp._jspx_meth_c_choose_0(PageContext) line: 13
ViewUserProfile_jsp._jspService(HttpServletRequest,
HttpServletResponse) line: 12
ViewUserProfile_jsp(HttpJspBase).service(HttpServletRequest,
HttpServletResponse) line: 94
ViewUserProfile_jsp(HttpServlet).service(ServletRequest,
ServletResponse) line: 810
JspServletWrapper.service(HttpServletRequest, HttpServletResponse,
boolean) line: 298
JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse,
String, Throwable, boolean) line: 292
JspServlet.service(HttpServletRequest, HttpServletResponse) line: 236
JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line:
810
ApplicationFilterChain.internalDoFilter(ServletRequest,
ServletResponse) line: 237
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line:
157
ApplicationDispatcher.invoke(ServletRequest, ServletResponse) line:
703
ApplicationDispatcher.processRequest(ServletRequest, ServletResponse)
line: 463
ApplicationDispatcher.doForward(ServletRequest, ServletResponse) line:
398
ApplicationDispatcher.forward(ServletRequest, ServletResponse) line:
312
SeoLinkFilter.doFilter(ServletRequest, ServletResponse, FilterChain)
line: not available
ApplicationFilterChain.internalDoFilter(ServletRequest,
ServletResponse) line: 186
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line:
157
StandardWrapperValve.invoke(Request, Response, ValveContext) line: 214
StandardValveContext.invokeNext(Request, Response) line: 104
StandardPipeline.invoke(Request, Response) line: 520
StandardContextValve.invokeInternal(Wrapper, Request, Response) line:
198
StandardContextValve.invoke(Request, Response, ValveContext) line: 152
StandardValveContext.invokeNext(Request, Response) line: 104
StandardPipeline.invoke(Request, Response) line: 520
StandardHostValve.invoke(Request, Response, ValveContext) line: 137
StandardValveContext.invokeNext(Request, Response) line: 104
ErrorReportValve.invoke(Request, Response, ValveContext) line: 117
StandardValveContext.invokeNext(Request, Response) line: 102
StandardPipeline.invoke(Request, Response) line: 520
StandardEngineValve.invoke(Request, Response, ValveContext) line: 109
StandardValveContext.invokeNext(Request, Response) line: 104
AccessLogValve.invoke(Request, Response, ValveContext) line: 535
StandardValveContext.invokeNext(Request, Response) line: 102
StandardPipeline.invoke(Request, Response) line: 520
StandardEngine(ContainerBase).invoke(Request, Response) line: 929
CoyoteAdapter.service(Request, Response) line: 160
Http11Processor.process(InputStream, OutputStream) line: 793
Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection, Object[]) line: 702
TcpWorkerThread.runIt(Object[]) line: 571
ThreadPool$ControlRunnable.run() line: 644
ThreadWithAttributes(Thread).run() line: 534
|