[Mono-bugs] [Bug 81749][Maj] New - mod-mono-server2 crashes (w/ workaround)

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sun May 27 15:00:01 EDT 2007

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by mmorano at mikeandwan.us.


--- shadow/81749	2007-05-27 15:00:01.000000000 -0400
+++ shadow/81749.tmp.22808	2007-05-27 15:00:01.000000000 -0400
@@ -0,0 +1,119 @@
+Bug#: 81749
+Product: Mono: Class Libraries
+Version: 1.2
+OS Details: 
+Status: NEW   
+Priority: Major
+Component: Sys.Web
+AssignedTo: mhabersack at novell.com                            
+ReportedBy: mmorano at mikeandwan.us               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: mod-mono-server2 crashes (w/ workaround)
+I recently updated mono/mcs/xsp/mod_mono from svn and afterwards my website
+no longer worked via apache/mod_mono, however it would still work properly
+when accessed via xsp2.
+After restarting all the processes, I could see mod-mono-server2 properly
+established and awaiting requests.  However, when I made the first request
+to the site, fairly quickly the process would die.  I was eventually able
+to run the process manually by setting MonoRunXSP to false, and saw that it
+was segfaulting.
+I then ran the process manually with tracing enabled using the following
+/usr/local/bin/mod-mono-server2 --filename /tmp/mod_mono_server_maw
+--applications www.mikeandwan.us:/:/usr/share/webapps/mikeandwan_us
+--nonstop --root /usr/share/webapps/mikeandwan_us > x.txt
+The output (sample is attached after this post) illustrates an issue with
+resolving the Path for the request, and appears to be associated with how
+the system tries to identify the Encoding to use (causes infinite loop).
+Anyways, I have been able to work around this issue for now by adding the
+following method to ModMonoWorkerRequest.cs in the xsp tree:
+        public override byte [] GetQueryStringRawBytes ()
+        {
+            if (queryString == null || queryString.Length == 0)
+                return null;
+            return Encoding.GetBytes (queryString);
+        }
+This was modeled after the same method that is in XSPWorkerRequest, but
+introduces a check so if the length of the querystring is 0, this returns null.
+I'm sure this is probably not the correct fix, but it does get around the
+problem for me, and it is not clear to me where to appropriately fix this
+issue.  I was also curious if this is somehow specific to how I have Apache
+configured for this virtual host, which follows below:
+<VirtualHost *:80>
+    ServerName www.mikeandwan.us
+    ServerAdmin mmorano at mikeandwan.us
+    DocumentRoot "/usr/share/webapps/mikeandwan_us"
+    Include conf/mod_mono.conf
+    MonoDocumentRootDir maw "/usr/share/webapps/mikeandwan_us"
+    MonoApplications maw "www.mikeandwan.us:/:/usr/share/webapps/mikeandwan_us"
+    MonoServerPath maw "/usr/local/bin/mod-mono-server2"
+    #MonoRunXSP maw false
+    #MonoDebug maw true
+    #MonoUnixSocket maw "/tmp/mod_mono_www.mikeandwan.us"
+    SetOutputFilter DEFLATE
+    ErrorLog /var/log/apache2/mikeandwan_error.log
+    TransferLog /var/log/apache2/mikeandwan_access.log
+    <IfModule mod_rewrite.c>
+        RewriteEngine on
+        RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD)$
+        RewriteRule .* - [F]
+    </IfModule>
+    <Directory "/usr/share/webapps/mikeandwan_us">
+        MonoSetServerAlias maw
+        #AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
+        SetHandler mono
+        <FilesMatch "\.(gif|jp?g|png|css|ico|xsl|wmv|zip)$">
+            SetHandler None
+        </FilesMatch>
+        Options Indexes FollowSymLinks
+        #DirectoryIndex index.aspx
+        AllowOverride None
+        Order allow,deny
+        Allow from all
+    </Directory>
+    <IfDefine INFO>
+        <Location /mono>
+            SetHandler mono-ctrl
+            Order deny,allow
+            Deny from all
+            Allow from
+        </Location>
+    </IfDefine>
+Let me know if there is anything else that would be useful to track this
+down, it's taken me a bit of time to get this far...

More information about the mono-bugs mailing list