[Mono-bugs] [Bug 618043] New: fastcgi-mono-server2 stops accepting requests, after heavy load

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Jun 28 15:57:10 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=618043

http://bugzilla.novell.com/show_bug.cgi?id=618043#c0


           Summary: fastcgi-mono-server2 stops accepting requests, after
                    heavy load
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.6.x
          Platform: 32bit
        OS/Version: Linux
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: misc
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: novell at pasichnyk.net
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4

I have a fairly simple web app, hosted in lighttpd via fastcgi (single
process).  The app serves up entirely dynamic content (single .ashx), no static
content is delivered.  Incoming requests are very small (just url parameters
for payload), and no real content is delivered (just a Response.Redirect()
after processing completes).

Under low or medium load, the system performs fine, however after running 1 or
more load test using siege or ab, the system stops accepting new connections. 
When it does this there are several errors that show up in the sites error log,
all coming from the fastcgi process...  
- Failed to process connection. Reason: Object reference not set to an instance
of an object
- Failed to process connection. Reason: Collection was modified; enumeration
operation may not execute.
- Failed to process connection. Reason: The descriptor is not a socket

Once i start seeing these errors in the log, either many incoming requests will
fail/timeout, or the will all timeout.  Usually all will timeout.

Requests for static content are still served fine, so lighttpd is functioning
as expected.

I know for sure that the fastcgi process is still running fine when it stops
taking connections, becuase i have a separate thread spawned off to do
maintenance work (Save some queued data to a database if there is work to do)
and it keeps running, writing out trace messages.

This is occurring on Gentoo x86, running on mono-2.6.4 and xsp-2.6.

Switching to spawn-fcgi didn't change anything.


Reproducible: Always

Steps to Reproduce:
1. Create a site with an .ashx handler that does a Response.Redirect()
2. load it up with over 500 requests/sec using "siege" or "ab"
3. tail the error log for the site
Actual Results:  
Website stops acceptiong connections, and reports the following errors in the
error_log.

- Failed to process connection. Reason: Object reference not set to an instance
of an object
- Failed to process connection. Reason: Collection was modified; enumeration
operation may not execute.
- Failed to process connection. Reason: The descriptor is not a socket

Restarting the process (if using spawn-fcgi) or restarting lighttpd (if using
lighttpd controlled fastcgi processes) resolves the issue, until more load
comes to the server at which time it will stop functioning again.

Expected Results:  
website doesn't stop accepting connections

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list