Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: 6.1.14
-
Fix Version/s: None
-
Component/s: Servlet
-
Labels:None
-
Environment:jetty 6.1.14
-
Number of attachments :
Description
Our TaskTracker process OOM while serving map outputs. We dump the heap and analyze it with MAT. We found one instance of "org.mortbay.thread.QueuedThreadPool" occupies 853,258,184 (72.51%) bytes. This object contain a "java.lang.Runnable[]" which has 7200 elements.
The QueuedThreadPool of jetty6 own an array of jobs. If an idle thread is available a job is directly dispatched, otherwise the job is queued to the array. At first the size of the array is _maxThreads(40). When its full, the size grow to array.length() + _maxThreads. Because the grow has no limit, this array can occupy too many memory when there are lots of fetch request from reduce task. So is this jetty6's bug?
Could you please try upgrading to Jetty 6.1.26 and confirm that the problem still occurs?
Thanks,
Michael