[Mono-bugs] [Bug 694934] New: crash when creating and unloading a large number of AppDomains

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu May 19 13:01:28 EDT 2011


https://bugzilla.novell.com/show_bug.cgi?id=694934

https://bugzilla.novell.com/show_bug.cgi?id=694934#c0


           Summary: crash when creating and unloading a large number of
                    AppDomains
    Classification: Mono
           Product: Mono: Runtime
           Version: SVN
          Platform: 64bit
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: remoting
        AssignedTo: lluis at novell.com
        ReportedBy: spigaz at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101
Firefox/4.0.1

When a large number of AppDomains is created (over 3000), mono crashes.

Reproducible: Always

Steps to Reproduce:
1. build and run
using System;

public class Example
{
    public static void Main()
    {
            for(int i=0; i<10000; i++)
            {
                System.Console.WriteLine("\n\nIteration " + i);

        AppDomain ad = AppDomain.CreateDomain("ChildDomain");

                AppDomain.Unload(ad);
            }
    }
}
2.
3.
Actual Results:  
Stacktrace:

  at <unknown> <0xffffffff>
  at System.Runtime.Serialization.FormatterServices.GetSerializableMembers
(System.Type,System.Runtime.Serialization.StreamingContext) <0x00082>
  at
System.Runtime.Serialization.Formatters.Binary.CodeGenerator.GenerateMetadataTypeInternal
(System.Type,System.Runtime.Serialization.StreamingContext) <0x0018a>
  at
System.Runtime.Serialization.Formatters.Binary.CodeGenerator.GenerateMetadataType
(System.Type,System.Runtime.Serialization.StreamingContext) <0x0006d>
  at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.CreateMemberTypeMetadata
(System.Type) <0x0005b>
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.GetObjectData
(object,System.Runtime.Serialization.Formatters.Binary.TypeMetadata&,object&)
<0x0082b>
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObject
(System.IO.BinaryWriter,long,object) <0x0005c>
  at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectInstance
(System.IO.BinaryWriter,object,bool) <0x00182>
  at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteQueuedObjects
(System.IO.BinaryWriter) <0x0003f>
  at
System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectGraph
(System.IO.BinaryWriter,object,System.Runtime.Remoting.Messaging.Header[])
<0x00070>
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize
(System.IO.Stream,object,System.Runtime.Remoting.Messaging.Header[]) <0x002b3>
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize
(System.IO.Stream,object) <0x00020>
  at System.Runtime.Remoting.Channels.CADSerializer.SerializeObject (object)
<0x000b7>
  at System.AppDomain.GetMarshalledDomainObjRef () <0x0003c>
  at (wrapper runtime-invoke) <Module>.runtime_invoke_object__this__
(object,intptr,intptr,intptr) <0xffffffff>
  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke
(System.Reflection.MonoMethod,object,object[],System.Exception&) <0xffffffff>
  at System.AppDomain.InvokeInDomain
(System.AppDomain,System.Reflection.MethodInfo,object,object[]) <0x0009c>
  at System.Runtime.Remoting.RemotingServices.GetDomainProxy (System.AppDomain)
<0x0004f>
  at System.AppDomain.CreateDomain
(string,System.Security.Policy.Evidence,System.AppDomainSetup) <0x001b4>
  at System.AppDomain.CreateDomain (string) <0x00010>
  at Example.Main () <0x0006e>
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

    mono() [0x4939a1]
    mono() [0x4e48df]
    mono() [0x418909]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0xfc60) [0x7f763dd10c60]
    /lib/x86_64-linux-gnu/libc.so.6(memcpy+0xe1) [0x7f763d9f7a41]
    mono() [0x419bcb]
    mono() [0x41b9dd]
    mono() [0x41c8ca]
    mono() [0x41d1cd]
    mono() [0x495461]
    [0x400d616a]

Debug info from gdb:

Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf
ptrace: Operação não permitida.

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================


Expected Results:  
It should have terminated creating all the AppDomains and then exiting
normally.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list