[Mono-bugs] [Bug 73048][Nor] Changed - XSP gives an error occasionally, while using mod_mono does not
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Thu, 17 Mar 2005 02:46:33 -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 bugzilla@patearl.net.
http://bugzilla.ximian.com/show_bug.cgi?id=73048
--- shadow/73048 2005-02-27 06:45:00.000000000 -0500
+++ shadow/73048.tmp.18183 2005-03-17 02:46:33.000000000 -0500
@@ -97,6 +97,45 @@
problem.. hmm.
------- Additional Comments From gonzalo@ximian.com 2005-02-27 06:44 -------
Oh, wait. Tomorrow i'll test with IE.
I remember from another bug that IE sends 2 extra bytes '\r\n'. That
might be the problem...
+
+------- Additional Comments From bugzilla@patearl.net 2005-03-17 02:46 -------
+I had the same problem with IE and I did a network trace with
+Ethereal. In the request that fails, IE's behaviour looks rather
+strange. It sends the HTTP post request and then -immediately- sends
+TCP FIN without waiting for a reply.
+
+Looking at the successful response before it, we see the reason why.
+XSP sends back a 200, followed by the data. Right after that, as part
+of the same request, it sends back a 400. The exact data that causes
+the bad response is indeed an empty CRLF pair.
+
+The entire HTTP request looks to be within two packets. I saved the
+data from the packets here:
+
+ http://patearl.net/files/ie_packets.txt
+
+I wrote a quick work-around to get things going on my end. Here's the
+synopsis:
+
+In InitialWorkerRequest:
+
+bool GetRequestLine () {
+ string req = null;
+ try {
+ req = ReadLine ();
+ } catch {
+ }
+ if (req == null) return false;
+ req = req.Trim ();
+
+ // ADDED THESE LINES
+ if (req == "") {
+ gotSomeInput = false;
+ return false;
+ }
+
+It works for me, but I didn't really analyze if it was always correct.
+ The data from the packets may provide some illumination.