[Mono-dev] Async DNS resolution bug -- throws unhandled exception
Alex Chudnovsky
alexc at majestic12.co.uk
Sat Sep 3 14:10:56 EDT 2005
Hi all,
I have come across with the following bug on Mono v1.1.7 run under
Linux: when I use asyncronous DNS resolution and domain name is not
found, then I get normal exception, however after that a new exception
is thrown from inside of core library and it falls into global unhandled
exceptions handler -- its as if this known exception is not suppressed
in the callback, which it is. I have attached C# sample that I used to
reproduce this error. Here are text outputs from different OSes:
Under Linux:
------------------------------------------------------------------------------------------------
About to start resolving fv7ov41hycwpjyec3p.cywater.com
AsyncDNSResolved() exception: System.Net.Sockets.SocketException: No
such host is known
in <0x0009f> System.Net.Dns:GetHostByName (System.String hostName)
in <0x00066> System.Net.Dns:Resolve (System.String hostName)
in (wrapper delegate-invoke)
System.MulticastDelegate:invoke_IPHostEntry_string (string)
BUG -- UNHANDLED EXCEPTION: System.Net.Sockets.SocketException: No such
host is known
in <0x0009f> System.Net.Dns:GetHostByName (System.String hostName)
in <0x00066> System.Net.Dns:Resolve (System.String hostName)
in (wrapper delegate-invoke)
System.MulticastDelegate:invoke_IPHostEntry_string (string)
------------------------------------------------------------------------------------------------
Note that second exception is exactly the same as the first -- it is
caught by unhandled exceptions handler.
here is what I get under windows using both Mono and native .NET 1.1:
----------------------------------------------------------------------------
About to start resolving fv7ov41hycwpjyec3p.cywater.com
AsyncDNSResolved() exception: System.Net.Sockets.SocketException: The
requested
name is valid and was found in the database, but it does not have the
correct as
sociated data being resolved for
Server stack trace:
at System.Net.Dns.GetHostByName(String hostName)
at System.Net.Dns.Resolve(String hostName)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInC
ontext, Object[]& outArgs) at
System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMe
ssage msg, IMessageSink replySink)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message
reqMsg,Boolean bProxyCase)
at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object
NotUsed, MessageData& msgData)
at System.Net.ResolveDelegate.EndInvoke(IAsyncResult result)
at System.Net.Dns.EndResolve(IAsyncResult asyncResult)
at Majestic12.MonoDnsBug.AsyncDNSResolved(IAsyncResult oAR) in
h:\alex\projects\tests\monodnsbug\monodnsbug.cs:line 59
----------------------------------------------------------------------------
As you can see there is no additional exception that has to be caught by
the UNHANDLED exception handler.
I think this is because exception handled by the asyncronoous call back
routine is rethrown again by the library.
Any comments would be appreciated.
Alex
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MonoDnsBug.cs
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050903/870e124f/attachment.pl
More information about the Mono-devel-list
mailing list