<< Back to previous view

[GLASSFISH-5243] GlassFish can becomes unresponsible when the requests queue gets full Created: 01/Jul/08  Updated: 18/May/11  Resolved: 01/Oct/08

Status: Resolved
Project: glassfish
Component/s: grizzly-kernel
Affects Version/s: 9.1.1
Fix Version/s: 9.1.1_dev

Type: Bug Priority: Critical
Reporter: jfarcand Assignee: jfarcand
Resolution: Fixed Votes: 0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


File Attachments: Java Archive File issue5243_patch.jar    
Issuezilla Id: 5,243
Status Whiteboard:

911Approved

Tags:
Participants: harpreet, jfarcand and praagggm

 Description   

GlassFish can becomes unresponsible when it's requests queue reach it's maximum.
By default, the max pending requests count is 4096. When queue size reach that
limit, GlassFish starts dropping requests automatically by sending an error page
to the user using its acceptor thread (SelectorThread).

If the user isn't reading the response fast enough, there is probability that
GlassFish can becomes unresponsitive for a short period of time (until the slow
client read the error page response).

The workaround is to increase the max-pending-count attribute of
connection-pool, but that will just delay the problem. The solution is to drop
the connection when the client isn't reading the response



 Comments   
Comment by jfarcand [ 01/Jul/08 08:55 AM ]

Created an attachment (id=1599)
Very simple fix which drop requests if the queue is full and the client cannot read the bytes

Comment by harpreet [ 03/Jul/08 03:08 PM ]

Approved for v2.1

Comment by jfarcand [ 07/Jul/08 09:10 AM ]

Fixed

Tag: SJSAS91_FCS_BRANCH
User: jfarcand
Date: 2008-07-04 01:59:59+0000
Modified:

glassfish/appserv-http-engine/src/java/com/sun/enterprise/web/connector/grizzly/LinkedListPipeline.java

Log:
Fix for Issue https://glassfish.dev.java.net/issues/show_bug.cgi?id=5243
("GlassFish can becomes unresponsible when the requests queue gets full")

Drop connection without trying to write anything, as the thread used for
writing is the thread that accept the connection.

+ ALl QL passed

Reviewed by: Jan Luehe

File Changes:

Directory:
/glassfish/appserv-http-engine/src/java/com/sun/enterprise/web/connector/grizzly/
============================================================================================

File [changed]: LinkedListPipeline.java
Url:
https://glassfish.dev.java.net/source/browse/glassfish/appserv-http-engine/src/java/com/sun/enterprise/web/connector/grizzly/LinkedListPipeline.java?r1=1.25&r2=1.25.6.1
Delta lines: +8 -5
-------------------
— LinkedListPipeline.java 2007-06-01 14:52:54+0000 1.25
+++ LinkedListPipeline.java 2008-07-04 01:59:51+0000 1.25.6.1
@@ -37,6 +37,7 @@

Comment by praagggm [ 18/May/11 02:05 AM ]

Can you please let us know the patch application process

Generated at Wed Apr 16 20:57:42 UTC 2014 using JIRA 4.0.2#472.