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 [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=79112 --- shadow/79112 2006-08-20 02:04:42.000000000 -0400 +++ shadow/79112.tmp.28157 2006-08-20 02:04:42.000000000 -0400 @@ -0,0 +1,61 @@ +Bug#: 79112 +Product: Mono: Class Libraries +Version: 1.1 +OS: All +OS Details: Debian, OS X +Status: NEW +Resolution: +Severity: +Priority: Wishlist +Component: Sys.Web +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: HttpListenerRequest.InputStream.Read blocks indefinitively + +First, you need the MindTouch Dream source at: + svn://dev.opengarden.org/svn/trunk/product/dream + +To build, execute + build.sh + +Description of Problem: reading from HttpListenerRequest.InputStream on +another worker thread blocks the operation indefinitively + + +Steps to reproduce the problem: +1. build Dream using 'build.sh' +2. change to the 'bin' folder +3. execute 'mono --debug mindtouch.host.exe' +4. open another terminal window +5. go to the 'mindtouch.host' folder +6. execute 'curl -H 'Content-Type: text/xml' -d @show-headers.startup.xml +http://localhost:8081/host/execute' + +Actual Results: +The terminal running the Dream host will show that the message was +received, but will block processing it. Specifically, it blocks at +'DreamMessage.cs:Document' when it tries to deserialize the XDoc from +'_stream' near line 178. More details on the internal processing order below. + +Expected Results: +Have 'DreamMessage.Document' succeed without blocking. (NOTE: the +operation itself might not succeed, but that's ok) + +How often does this happen? +Always on OS X. + +Additional Information: +Here is the sequence of events that occur when a message is reiceved. +1. 'mindtouch.core/httptransport.cs' sets up an async HttpListener. When a +message arrives, 'HttpTransport.CommonRequestHandler' is invoked. +2. 'CommonRequestHandler' creates a 'DreamMessage' using +'HttpListenereRequest.InputStream' (note that the input stream is not read yet) +3. the DreamMessage is handed off to the DreamEnvironment, which locates +the method delegate to invoke for this request +4. the delegate uses 'DreamRequest.ReceiveXDoc' to retrieve the request +5. 'DreamRequest.ReceiveXDoc' invokes 'DreamMessage.Message' to deserialize +the input stream (this is when it blocks) _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
