[Mono-bugs] [Bug 522017] New: XSP2: Modifying the web.config causes ThreadAbortExceptions

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jul 14 12:20:13 EDT 2009


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


           Summary: XSP2: Modifying the web.config causes
                    ThreadAbortExceptions
    Classification: Mono
           Product: Mono: Class Libraries
           Version: SVN
          Platform: i386
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.Web
        AssignedTo: mhabersack at novell.com
        ReportedBy: kevin at kevinfitzgerald.net
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Created an attachment (id=305030)
 --> (http://bugzilla.novell.com/attachment.cgi?id=305030)
Complete test solution to exhibit the problem

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.6)
Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)

With an asp.net website, when modifying its own web.config file, a
ThreadAbortException occurs while or shortly after saving. This causes
unpredictable results, including a yellow-screen-of-death and a completely
wiped-out web.config file (totally blank).

The problem appears to be related to the FileSystemWatcher(s) that watch for
changes to the website's critical files. When a change is detected (immediately
or shortly after the web.config file is modified) it appears that all active
requests are immediately aborted as the AppDomain reloads. This action causes a
major stability problem for websites that need to manage their own web.config
files.

Microsoft's implementation does not exhibit this problem. This makes me
inclined to believe that a different approach for handing AppDomain reloads is
needed. 

In this approach, when a AppDomain reload is to be performed, perhaps a flag
should be toggled, and all active requests should be allowed to finish (subject
to timeout), while delaying any new requests that come in. When all active
requests have finished, then reload the AppDomain and resume accepting new
requests. This approach may provide more stability.

Reproducible: Always

Steps to Reproduce:
Run the attached example website.
Actual Results:  
On Windows: The page executes fully and the log is displayed to the client.
On Linux with xsp2: The page aborts immediately after the first iteration's
save, and most of the time blanking-out the web.config file.

Expected Results:  
No ThreadAbortException or loss of web.config data should occur.

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


More information about the mono-bugs mailing list