I do not believe I am allowed to contribute to mono as I have used reflector on the .net class libraries.
On Thu, Jul 22, 2010 at 12:02 AM, Stifu <[email protected]> wrote: > > Among the bugs I reported, the ones which tended to get fixed the fastest > were the ones I submitted patches for. :) > Not catching an Exception (or throwing one) sounds like a trivial patch, but > I could be wrong. > > > Daniel Hughes wrote: >> >> And I found the bug. >> >> Bug 491191 >> >> Which is over a year old. >> >> This one is not in an obscure part of the framework like my serial >> port bug so it should be fixed quickly?? >> >> >> >> On Wed, Jul 21, 2010 at 10:21 PM, Daniel Hughes <[email protected]> >> wrote: >>> Ok I think I have it: >>> >>> http://msdn.microsoft.com/en-us/library/ms228965.aspx#ChangeFromPreviousVersions >>> >>> tells us that since .net 2.0 the runtime does not swallow threadpool >>> exceptions. So that means that the mono implementation is wrong. >>> >>> On Wed, Jul 21, 2010 at 9:51 PM, Daniel Hughes <[email protected]> >>> wrote: >>>> upon further reading this appears to be the correct behavior. Although >>>> it does not seem to be what is happening in .net I will need to do >>>> more investigation it seems. >>>> >>>> On Wed, Jul 21, 2010 at 9:16 PM, Daniel Hughes <[email protected]> >>>> wrote: >>>>> In trying to port our application to run on mono I have discovered >>>>> that mono is silently swallowing exceptions. This is a really big >>>>> deal, we expect these exceptions to bubble up and kill the >>>>> application. >>>>> >>>>> There is not even any indication that an exception has occurred it is >>>>> just lost. >>>>> >>>>> public static void Main (string[] args) >>>>> { >>>>> Action action = () => >>>>> { >>>>> throw new Exception("this should Kill >>>>> the process but doesn't"); >>>>> }; >>>>> >>>>> ThreadPool.QueueUserWorkItem(_ => action()); >>>>> while(true) >>>>> { >>>>> Thread.Sleep(1000); >>>>> Console.WriteLine("wrongly still >>>>> running"); >>>>> } >>>>> } >>>>> >>>>> The implications of this could be catastrophic. Imagine some code >>>>> which performs a check, finds bad data and throws an exception. >>>>> However mono swallows that exception so instead of the program closing >>>>> it carries on running and uses the bad data. This results in sensitive >>>>> data being lost. Or in our case a radio being bricked. >>>>> >>>>> Can someone explain why mono is doing this and if their is some >>>>> setting / environment variable I can change to make unhandled >>>>> threadpool exceptions terminate the process as is expected. >>>>> >>>> >>> >> _______________________________________________ >> Mono-list maillist - [email protected] >> http://lists.ximian.com/mailman/listinfo/mono-list >> >> > > -- > View this message in context: > http://mono.1490590.n4.nabble.com/mono-swallows-threadpool-exceptions-tp2296815p2296994.html > Sent from the Mono - General mailing list archive at Nabble.com. > _______________________________________________ > Mono-list maillist - [email protected] > http://lists.ximian.com/mailman/listinfo/mono-list > _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
