Release Notes Mono 2.10.2

Release date: 25 Apr 2011

Mono is a portable and open source implementation of the .NET framework for Unix, Windows, MacOS and other operating systems.

Mono 2.10.2 is a minor update to Mono 2.10 based on the mono-2-10 branch of github. Mono 2.10.2 was released on April 25, 2011.

Important Information About Mono 2.10

Mono’s Long Term Supported release continues to be Mono 2.6, the next long-term support release will be Mono 3.0.

Mono 2.10 ships the latest and greatest and updates and they have not received as much testing as they should. Users seeking absolute stability should stay on Mono 2.6. Users switching to Mono 2.10, should expect a faster bug turn around time, but they should also plan on upgrading to the upcoming 2.10.xx series as we fix bugs in our stack.

Major Highlights

This release can run Microsoft’s OrchardCMS, an open source CMS system built using the best .NET practices, and uses the delightful Razor engine.

We added support for PostgreSQL to Orchard and submitted our patches to the OrchardCMS community.

Both Mac packages are now self-contained. If you previously downloaded the Framework and the C SDK you can now install just the SDK (MDK) package.

Changes Since Mono 2.10


  • Bug preventing MVC3 apps from running has been fixed
  • Fix 668655: MVC3: error accessing the query variables collection
  • OrchardCMS should work with Mono
  • 671753: Route.GetVirtualPath must take ambient values into account.

Parallel FX:

  • The default task scheduler now uses the runtime ThreadPool, instead of its own pool


  • Fixes 594642, problem with GetAllInterfaces
  • Performance Counters are now supported on OSX
  • Respects signal handlers when reporting crashes
  • CSDK pkg now contains .dSYM and .mdb files for debugging
  • MDK pkg replaces CSDK and includes all content of Framework pkg


  • Fix regression on HTTP Authentication


  • Allow MSBuildExtensionsPath to be overridden by setting the environment variable $MSBuildExtensionsPath
  • Use the correct path separator for handling environment variable MSBuildExtensionsPath, fixes xbuild on windows. Bug #674337.
  • 674630: Handle errors in trying to create AssemblyName from invalid full names.


  • System.ServiceModel: extensive serialization bug fixes.
  • Simple InstanceContext.Extensions implementation by David Schmitt (#674057)

Bug fixes:

  • 688033: Arrays don’t support MemberwiseClone
  • 688007: WebClient.OpenRead() fails when trying to access an anonymous ftp site
  • 687580: Mono 2.10.1WCF fails with ‘(400) Bad Request’ when the calling client uses URIs that should be functionally equivalent such as IP address instead of machine name
  • 687399: [threadpool] Deadlock upon shutdown with pending jobs in appdomains
  • 686371: Second HTTP request times out if previous HEAD request resulted in 403
  • 686269: [SDB] Debugger resumes execution when it should do a single step
  • 685368: Behavior difference with HttpWebResponse.Close between Mono and .Net
  • 685267: <asp:TreeView> PostBack problem
  • 685116: Fails to redirect to the Login Form when using AJAX (using Forms Authentication timeout)
  • 685069: Two races in Mono.WebServer.FastCGI/Connections.cs that occur under heavy load
  • 685042: Thrown exception when serializing a class that implements from IDictionary using DataContract
  • 684803: XmlSiteMapProvider parsing: Can’t find a site map node for the url: Default.aspx
  • 684438: SIGABRT we can’t encode valuetypes, we should have never reached this line
  • 683712: DataConverter.Unpack reads a double when float is speficied
  • 683642: GetProperty<T> on Binding does not return the proper result
  • 683519: garbage collector waking up threads that are sleeping infinite
  • 683409: SMP problems on ARM
  • 683339: POST variables are not transferred to HttpContext.Request.Params nor FormCollection in MVC3 app
  • 683203: Directory.GetFiles error or crash if pattern is unusual
  • 682963: gstring.c:116: assertion ‘val != NULL’ failed
  • 682957: XmlElement deserialization failed with DataContractSerializer.
  • 682869: mono-2-10 cannot build Test/System.Web.Routing/RouteTest.cs: “error CS1061: Type `System.Web.Routing.RouteCollection’ does not contain a definition for `MapPageRoute’ and no extension method `MapPageRoute’ of type `System.Web.Routing.RouteCollection’…”
  • 681553: FindControl not working as expected
  • 681552: There is no service pack information in Environment.OSVersion
  • 681548: HttpListenerRequest.Url.OriginalString in mono mismatches .Net version
  • 681421: CombineVirtualPaths method in VirtualPathProvider is ignored
  • 681164: OutputCacheAttribute in MVC causes 100% CPU usage and mono to stop responding
  • 679586: Unknown type System.Collections.Generic.CollectionDebuggerView error when viewing Parametrized collection in debugger
  • 679467: .cctors run in incorrect order
  • 679183: .NET Incompatibility: Task.WaitAll(new Task[] {}) throws an ArgumentException
  • 679174: ConcurrentBag<T>.GetEnumerator() yields uninitialized elements
  • 678705: MenuListRender off-by-one fails to close tag
  • 678662: Exception “invalid handle specified” because mono_thread_pool_cleanup() is called twice
  • 678473: HttpResponse.WriteFile maps files to absolute path
  • 678269: ModuleBuilder.GetToken causes SIGSEGV
  • 678164: Threads started by native code that call into managed code get IsBackground==False
  • 677746: Crash: Assertion at mono-wsq.c:73, condition `mono_wsq_count (wsq) == 0’ not met
  • 677550: Fixed buffers are broken
  • 676993: Invalid cast exception doing xml validation
  • 676671: Microsoft.Build.BuildEngine.EventSource.AnyEventRaised is not fired
  • 676650: FileLogger throws on setting parameters
  • 676615: when compiling under -DDEBUG threads.c:761 references non-existing variable
  • 676587: Debugger Crashes
  • 676368: Should not use ODBC statement handles after SQLDisconnect called
  • 676260: Dns.GetHostEntry(Dns.GetHostName()).HostName is different from Dns.GetHostName()
  • 676060: System.IO.MemoryStream can throw NullReferenceExceptions when expanding internal buffer
  • 676020: ReadToNextSibling does not move as expected
  • 676009: XDocument.Load throws “(DTD) is prohibited in this XML”
  • 676008: Form name and id are incorrectly rendered with master pages.
  • 675777: the negation part of an expression like “0 - non_constant_expr” is ignored by mcs
  • 675731: System.Net.HttpWebRequest does not normalize Method property to uppercase
  • 675620: ArgumentNullException thrown when calling SyndicationContent.WriteTo
  • 675464: Runtime should support “long form” signatures for .NET 1.1 assemblies
  • 674630: Better error message for invalid assembly
  • 674580: An exception is thrown when trying to read UTF-16-encoded XML files
  • 674490: Mono.Debugger.Soft.VirtualMachine.EnableEvents dislikes EventType.Step
  • 674224: Compiler crashes with NullReferenceException - worked with mono 2.8.2
  • 674120: BigInteger comparision operators failing
  • 674057: Trivial implementation for InstanceContext.Extensions
  • 673793: Assembly loading fails when path contains national language characters
  • 670874: Incorrect result of WebFormViewEngine.FileExists with MVC 3 & precompilled site
  • 670714: Display problem with XSP4
  • 669836: Unhandled exceptions thrown in threads other than the UI thread aren’t caught by the debugger
  • 669303: F-Spot crashes on load.
  • 668867: Processes needs to be waited for to not turn into zombies
  • 668696: [Regression] SynchronizationLockException when accessing HttpApplicationState after Lock() is called
  • 667513: System.Web.Routing throws NotImplementedException when PathInfo is set
  • 667329: Key duplication when adding: sessionState
  • 666736: UDP support
  • 660412: Setting MONO_EXTERNAL_ENCODINGS environment variable to “default_locale” causes crash on startup if an assembly is in directory containing national characters
  • 658184: System.Configuration.Save() still not working in Mono 2.8.1
  • 656468: System.Console.CapsLock incorrectly throws a System.NotSupportedException
  • 655934: TextReader: ReadToEnd and ReadLine not implemented correctly
  • 655474: JavaScriptSerializer cannot serialize a relative Uri
  • 650695: System.Web.HttpNotFoundHandler missing
  • 672907: List<T>: Properly check the array argument to match MS semantics
  • 672446: Generic sharing bugfix
  • 673592: Soft debugger was crashing the runtime on Windows
  • 673828: Fix ARM thunk creation in dynamic methods.
  • Transactions: do deep copies of transaction (required for Orchard/NHibernate)
  • 669807: Cache session item locks as the item might be cleared before the lock needs to be released.
  • Fix ARM/darwin lookup of Thread Specific Data/Descriptors
  • Implement memory barriers for ARM
  • 672939: fixes missing methods while running MonoDevelop
  • 669815: Fixes crash on IronRuby test suite
  • 661461: Fixes a case where Assembly.Load(AssemblyName) did not work with some partial names
  • 662867: Attribute.GetCustomAttributes was failing in searching inheritance chain against overridden method ToString()
  • Workaround Linux/gcc/ARM bug
  • 665893: Fixes a crash when a generic method that calls another generic method was called
  • Fix infinite loop in DiscoveryMessageSequence equality comparison
  • 667921: Fix crash in multi-threaded LINQ
  • System.IO.TextReader now provides a default implementation for ReadLine and ReadToEnd
  • Console:TerminfoDriver is now more tolerant to failures
  • 656468: Console, avoid throwing exceptions for unsupported console features on Unix
  • Fix stop_debugger_thread () on windows.
  • #669836: Treat exceptions that are caught by mono_runtime_invoke() as unhandled in SDB
  • Enabled UDP stack on Mobile platforms.