[Mono-bugs] [Bug 73619][Cri] Changed - mod_mono does not recover when the system is busy or mod-mono-server fails to quit
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Fri, 11 Mar 2005 20:01:52 -0500 (EST)
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 gonzalo@ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=73619
--- shadow/73619 2005-03-11 19:23:48.000000000 -0500
+++ shadow/73619.tmp.8937 2005-03-11 20:01:52.000000000 -0500
@@ -1,14 +1,14 @@
Bug#: 73619
Product: Mono: Tools
Version: 1.1
-OS:
+OS: unknown
OS Details:
Status: NEW
Resolution:
-Severity:
+Severity: Unknown
Priority: Critical
Component: mod_mono
AssignedTo: gonzalo@ximian.com
ReportedBy: rlyon@novell.com
QAContact: mono-bugs@ximian.com
TargetMilestone: ---
@@ -49,6 +49,70 @@
I am not sure who is throwing "Unhandled Exception" or why mod-mono-server
does not continue exit after it is thrown. The main runner thread (the
only non-background thread) appears to have been aborted successfully.
I know this is complex, but we are excited to be at this performance point
with Mono.
+
+------- Additional Comments From gonzalo@ximian.com 2005-03-11 20:01 -------
+>we have a busy server (with 200 clients) the first roll of Apache
+>(killall-HUP httpd2-worker) usually works, but the second usually
+> fails. on the second roll mod-mono-server throws:
+
+>Unhandled Exception: System.NullReferenceException: Object reference
+>not set to an instance of an object
+
+>which we see in the error_log file. I have been unable to determine
+>who is throwing this exception, but at this point mod-mono-server
+>fails to exit.
+
+I'll try to reproduce this condition by running mod-mono-server under
+gdb (slow) and pausing when we're told to shutdown. Let's see if i get
+the nullref.
+
+> because of the hash lock file, it will not be started again.
+
+I can remove this lock file and the socket file immediately after
+receiving the shutdown request, before finalizing the applications
+running.
+
+> for robustness, I think we should start by tightenting the starting
+> of mod-mono-server using a lock file or mutex in mod_mono and remove
+> the hash lock in the mod-mono-server.
+
+The problem of locking in mod_mono is that mod-mono-server can be run
+from outside mod_mono. Having the lock in mod-mono-server prevents
+user errors if attempting to run the same thing twice (and if we
+remove the lock immediately we'll have better chances here).
+
+On the other hand, not locking in mod_mono causes forking overhead at
+startup.
+
+
+ I think we need to support starting a new mod-mono-server comming up
+even if the old mod-mono-server has become defunct (or possible force
+a kill before starting again).
+
+>Q: how do you see the WebTracing in mod-mono-server, when running
+mod_mono?
+You have to compile with /d:WEBTRACE. The output goes to Console.Out,
+so you have to put that dup2() line in mod_mono when forking.
+
+ where does the output from mod-mono-server behind mod_mono go?
+
+stdout goes to apache stdout, which i think it's ignored. stderr goes
+to the error log.
+
+> I am not sure who is throwing "Unhandled Exception" or why
+> mod-mono-server does not continue exit after it is thrown. The main
+> runner thread (the only non-background thread) appears to have been
+> aborted successfully.
+
+I don't know if i'll be able to reproduce this inside or outside gdb,
+but i'll try.
+
+One question for you: is this using SVN mono/mcs/xsp/mod_mono?
+
+> I know this is complex, but we are excited to be at this performance
+> point with Mono.
+
+I'm glad to hear this and part of the "blame" is on you guys.