Mantis - Resin
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
4251 | minor | always | 10-07-10 16:03 | 11-02-10 15:09 | |
|
|||||
Reporter: | emil | Platform: | |||
Assigned To: | ferg | OS: | |||
Priority: | normal | OS Version: | |||
Status: | closed | Product Version: | 4.0.10 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 4.0.13 | ||
|
|||||
Summary: | 0004251: <thread-max> not picked up from configuration | ||||
Description: |
(rep by snw via forums) I am posting here first rather than filing a bug report straight away in case this is user error. Resin 4.0.10 looks like it doesn't action the thread-max element in config files. This is causing Resin to eventually run out of memory after spawning too many threads (my worst case scenario has each http request trigger a database call that takes about an 30 minutes to complete). My config file is this basic.conf: <resin xmlns="http://caucho.com/ns/resin" [^] xmlns:resin="urn:java:com.caucho.resin"> <cluster-default> <resin:import path="${__DIR__}/app-default.xml"/> <server-default> <thread-max>50</thread-max> <thread-idle-min>10</thread-idle-min> <thread-idle-max>20</thread-idle-max> </server-default> </cluster-default> <cluster id=""> <server id=""> <thread-max>50</thread-max> <thread-idle-min>10</thread-idle-min> <thread-idle-max>20</thread-idle-max> <http port="8080"/> </server> <host id="" root-directory="."> <web-app id="/" root-directory="/tmp/test"/> </host> </cluster> </resin> So, pretty clear that max thread pool size should be 50 right? Or have I misunderstood the configuration options? I have two test scripts in /tmp/test, status.jsp to print the number of threads in the pool / total threads allowed, and threads.jsp to change the thread pool max size programmatically. status.jsp: <H1> Thread Max: </H1> <%= com.caucho.env.thread.ThreadPool.getThreadPool().g etThreadCount() %>/ <%= com.caucho.env.thread.ThreadPool.getThreadPool().g etThreadMax() %> threads.jsp: <H1> Thread Max: </H1> <% com.caucho.env.thread.ThreadPool.getThreadPool().s etThreadMax(128); %> <%= com.caucho.env.thread.ThreadPool.getThreadPool().g etThreadCount() %>/ <%= com.caucho.env.thread.ThreadPool.getThreadPool().g etThreadMax() %> Running http://127.0.0.1:8080/status.jsp [^] I get: Thread Max: 15/ 4096 Running http://127.0.0.1:8080/threads.jsp [^] I get: Thread Max: 15/ 128 So, it started up with the wrong amount, but I was able to set it to a different amount later. The thread pool max directive in Resin 3.1.9 works fine for me. So - is this a bug in 4.0.10 and should I file it in the tracker, or is this a user error? |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|