Mantis - Quercus
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
1720 | major | always | 04-28-07 08:56 | 04-28-07 19:07 | |
|
|||||
Reporter: | salishev | Platform: | |||
Assigned To: | nam | OS: | |||
Priority: | normal | OS Version: | |||
Status: | closed | Product Version: | 3.1.1 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 3.1.1 | ||
|
|||||
Summary: | 0001720: Resource leak prevents stress testing | ||||
Description: |
I've tested with latest resin-3.1.s070425 The resource leak leads to server restart due to exception and creates unbearable delay in server responce. [19:35:07.302] java.io.FileNotFoundException: /srv/www2/webapps/ROOT/dokuwiki/VERSION (Too many open files) [19:35:07.302] at java.io.FileInputStream.open(Native Method) [19:35:07.302] at java.io.FileInputStream.<init>(FileInputStream.java:106) [19:35:07.302] at com.caucho.vfs.FilePath.openReadImpl(FilePath.java:418) [19:35:07.302] at com.caucho.vfs.Path.openRead(Path.java:977) [19:35:07.302] at com.caucho.quercus.lib.file.FileInput.<init>(FileInput.java:65) [19:35:07.302] at com.caucho.quercus.lib.file.FileModule.fopen(FileModule.java:1369) [19:35:07.302] at com.caucho.quercus.lib.file.FileModule.file(FileModule.java:669) [19:35:07.302] at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source) [19:35:07.302] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [19:35:07.302] at java.lang.reflect.Method.invoke(Method.java:589) [19:35:07.302] at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:105) [19:35:07.302] at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:614) [19:35:07.302] at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:487) [19:35:07.302] at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:473) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125) [19:35:07.302] at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:416) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:169) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:149) [19:35:07.302] at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77) [19:35:07.302] at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) [19:35:07.302] at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78) [19:35:07.302] at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:78) [19:35:07.302] at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75) [19:35:07.302] at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99) [19:35:07.302] at com.caucho.quercus.program.Function.callImpl(Function.java:316) [19:35:07.302] at com.caucho.quercus.program.Function.call(Function.java:264) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125) [19:35:07.302] at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:416) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:169) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125) [19:35:07.302] at com.caucho.quercus.expr.AppendExpr.eval(AppendExpr.java:90) [19:35:07.302] at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) [19:35:07.302] at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:75) [19:35:07.302] at com.caucho.quercus.program.Function.callImpl(Function.java:316) [19:35:07.302] at com.caucho.quercus.program.Function.call(Function.java:264) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125) [19:35:07.302] at com.caucho.quercus.expr.AppendExpr.eval(AppendExpr.java:90) [19:35:07.302] at com.caucho.quercus.expr.Expr.evalArg(Expr.java:400) [19:35:07.302] at com.caucho.quercus.expr.ArrayFunExpr.eval(ArrayFunExpr.java:107) [19:35:07.302] at com.caucho.quercus.expr.Expr.evalCopy(Expr.java:387) [19:35:07.302] at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:77) [19:35:07.302] at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) [19:35:07.302] at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99) [19:35:07.302] at com.caucho.quercus.program.Function.callImpl(Function.java:316) [19:35:07.302] at com.caucho.quercus.program.Function.call(Function.java:264) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125) [19:35:07.302] at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) [19:35:07.302] at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99) [19:35:07.302] at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239) [19:35:07.302] at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61) [19:35:07.302] at com.caucho.quercus.env.Env.include(Env.java:3297) [19:35:07.302] at com.caucho.quercus.expr.IncludeExpr.eval(IncludeExpr.java:86) [19:35:07.302] at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) [19:35:07.302] at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99) [19:35:07.302] at com.caucho.quercus.program.Function.callImpl(Function.java:316) [19:35:07.302] at com.caucho.quercus.program.Function.call(Function.java:264) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) [19:35:07.302] at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:125) [19:35:07.302] at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) [19:35:07.302] at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:99) [19:35:07.302] at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:239) [19:35:07.302] at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:61) [19:35:07.302] at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:115) [19:35:07.302] at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:125) [19:35:07.302] at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:341) [19:35:07.302] at javax.servlet.http.HttpServlet.service(HttpServlet.java:92) [19:35:07.302] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) [19:35:07.302] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175) [19:35:07.302] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240) [19:35:07.302] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:263) [19:35:07.302] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:477) [19:35:07.302] at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:600) [19:35:07.302] at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:522) [19:35:07.302] at java.lang.Thread.run(Thread.java:619) |
||||
Steps To Reproduce: | |||||
Additional Information: |
Actually I've found 3 resource leaks 1. com.caucho.quercus.parser.QuercusParser.parseEval/parseEvalExpr doesn't close the input stream 2. com.caucho.quercus.lib.file.FileInput.close() doesn't call super.close() 3. com.caucho.quercus.lib.file.FileInput.<init> doesn't call env.addClose(this); |
||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|