<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.16.2">
</HEAD>
<BODY>
Hi,<BR>
<BR>
We are using Mono 1.2.6.1 on our production servers since January 2008. It powered an ASP.NET 1.1 distributed intranet, and an extranet Web Site (www.fiducial.biz) with more than 4000 people working on it everydays.<BR>
I think it's time to do a summary of problems encountered with this version :<BR>
<BR>
<BR>
<B>Good points :</B><BR>
- We get rid of any ASP.NET (1.1) rendering problems... -&gt; congratulation to the ASP.NET team<BR>
- We get rid of any Npgsql DB problems<BR>
- We get rid of any .NET remoting problems<BR>
<BR>
<B>Bad points :</B><BR>
 <BR>
- We have now two very annoying bugs (very hard to debug them...)<BR>
- Some performance problems<BR>
<BR>
<B>1. We have more and more problems related to</B> <A HREF="https://bugzilla.novell.com/show_bug.cgi?id=322400">https://bugzilla.novell.com/show_bug.cgi?id=322400</A> (SOAP Client code)<BR>
<BR>
-&gt; Now we have more than 80 people / day that received a bad : <BR>
<BR>
<B><FONT SIZE="5"><FONT COLOR="#ff0000">Server Error in '/CASServer' Application</FONT></FONT></B>
<DIV ALIGN=center>
<HR NOSHADE>
</DIV>
<H2>
<B><I><FONT SIZE="4"><FONT COLOR="#b03060">at System.Net.WebConnection.HandleError(WebExceptionStatus st, System.Exception e, System.String where) at System.Net.WebConnection.ReadDone(IAsyncResult result) at System.Net.Sockets.Socket+SocketAsyncResult.Complete() at System.Net.Sockets.Socket+Worker.Receive() at System.MulticastDelegate.invoke_void()</FONT></FONT></I></B>
</H2>
<B><FONT SIZE="1"><FONT COLOR="#000000">Description: </FONT></FONT></B><FONT SIZE="1">Error processing request.</FONT><BR>
<BR>
<B><FONT SIZE="1"><FONT COLOR="#000000">Error Message: </FONT></FONT></B><FONT SIZE="1">HTTP 500. System.Exception: at System.Net.WebConnection.HandleError(WebExceptionStatus st, System.Exception e, System.String where) at System.Net.WebConnection.ReadDone(IAsyncResult result) at System.Net.Sockets.Socket+SocketAsyncResult.Complete() at System.Net.Sockets.Socket+Worker.Receive() at System.MulticastDelegate.invoke_void() </FONT><BR>
<BR>
<B><FONT SIZE="1"><FONT COLOR="#000000">Stack Trace: </FONT></FONT></B><BR>
<BR>
<TABLE BGCOLOR="#ffffcc" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
<FONT SIZE="2"><FONT COLOR="#000000">System.Exception:&nbsp;&nbsp;&nbsp; at System.Net.WebConnection.HandleError(WebExceptionStatus st, System.Exception e, System.String where)</FONT></FONT>
<FONT SIZE="2"><FONT COLOR="#000000">&nbsp;&nbsp; at System.Net.WebConnection.ReadDone(IAsyncResult result)</FONT></FONT>
<FONT SIZE="2"><FONT COLOR="#000000">&nbsp;&nbsp; at System.Net.Sockets.Socket+SocketAsyncResult.Complete()</FONT></FONT>
<FONT SIZE="2"><FONT COLOR="#000000">&nbsp;&nbsp; at System.Net.Sockets.Socket+Worker.Receive()</FONT></FONT>
<FONT SIZE="2"><FONT COLOR="#000000">&nbsp;&nbsp; at System.MulticastDelegate.invoke_void()</FONT></FONT>
<FONT SIZE="2"><FONT COLOR="#000000">&nbsp; at System.Net.WebConnection.HandleError (WebExceptionStatus st, System.Exception e, System.String where) [0x00000] </FONT></FONT>
</PRE>
</TD>
</TR>
</TABLE>
<BR>
The complete exception is here:
<PRE>

System.Net.WebException: Error getting response stream (ReadDone2): ReceiveFailure ---&gt; System.Exception: at System.Net.WebConnection.HandleError(WebExceptionStatus st, System.Exception e, System.String where)
at System.Net.WebConnection.ReadDone(IAsyncResult result)
at System.Net.Sockets.Socket+SocketAsyncResult.Complete()
at System.Net.Sockets.Socket+Worker.Receive()
at System.MulticastDelegate.invoke_void()
at System.Net.WebConnection.HandleError (WebExceptionStatus st, System.Exception e, System.String where) [0x00000] --- End of inner exception stack trace ---

at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] 
at System.Net.HttpWebRequest.GetResponse () [0x00000] 
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse (System.Net.WebRequest request) [0x00000]
</PRE>
<BR>
<BR>
When they try to open a web page.<BR>
<BR>
(our ASP.NET web pages does a web service request for authentication purpose)<BR>
<BR>
-&gt; I don't know how to debug this error, because it's very hard to reproduce! but it happens 1/200 request on our productions servers<BR>
I hope that someone (in the mono team) could help me to get rid to that!<BR>
<BR>
I've found no workaround at all for this!<BR>
<BR>
<BR>
<B>2. Handles leak problems :</B><BR>
<BR>
<B> This is a recurrent problems with mono. </B><BR>
<BR>
I ever talk about my problem on : <A HREF="http://lists.ximian.com/pipermail/mono-devel-list/2008-February/026981.html">http://lists.ximian.com/pipermail/mono-devel-list/2008-February/026981.html</A> and on <A HREF="http://lists.ximian.com/pipermail/mono-devel-list/2008-February/027015.html">http://lists.ximian.com/pipermail/mono-devel-list/2008-February/027015.html</A><BR>
<BR>
Today i've a workaround (bad)<BR>
<BR>
-&gt; I've isolated MONO_SHARED_DIR for each ASP.NET application (now i've 4096 handles by apps)<BR>
-&gt; a zabbix server (monitoring) send a request on an aspx web page that does a GC.Collect(); for each ASP.NET application-&gt; this works well handles doesn't leak anymore<BR>
<BR>
<BR>
<B>3. Performance problems</B><BR>
<BR>
These problems are not blocking for us just annoying...<BR>
see : <BR>
<A HREF="https://bugzilla.novell.com/show_bug.cgi?id=342190">https://bugzilla.novell.com/show_bug.cgi?id=342190</A> (with sharpZipLib)<BR>
<A HREF="https://bugzilla.novell.com/show_bug.cgi?id=357947">https://bugzilla.novell.com/show_bug.cgi?id=357947</A> (System.Data)<BR>
<BR>
<BR>
<B>3. Conclusion</B><BR>
<BR>
&nbsp;&nbsp;&nbsp; Mono is a great product. We use it in a professional server environement, coupled with postgreSQL it works/scales well.<BR>
I hope we could continue to work with you for many time... and find a way to fix remaining bugs ( 2 at least... for us).<BR>
If you want more details and help for fixing this, i'm available...<BR>
<BR>
Thanks for all<BR>
<BR>
Hubert FONGARNAND<BR>
Fiducial<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>

<DIV><P><HR>
_________________________________________________<BR>
<BR>
Ce message et les eventuels documents joints peuvent contenir des informations confidentielles.<BR>
Au cas ou il ne vous serait pas destine, nous vous remercions de bien vouloir le supprimer et en aviser immediatement l'expediteur. Toute utilisation de ce message non conforme a sa destination, toute diffusion ou publication, totale ou partielle et quel qu'en soit le moyen est formellement interdite.<BR>
Les communications sur internet n'etant pas securisees, l'integrite de ce message n'est pas assuree et la societe emettrice ne peut etre tenue pour responsable de son contenu.
</P></DIV>
</BODY>
</HTML>