http://bugzilla.novell.com/show_bug.cgi?id=595863
http://bugzilla.novell.com/show_bug.cgi?id=595863#c0 Summary: Crash when using nhibernate with bidirectional many-to-many relation Classification: Mono Product: Mono: Runtime Version: SVN Platform: i686 OS/Version: Ubuntu Status: NEW Severity: Normal Priority: P5 - None Component: misc AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2 Mono crashes when defining a bidirectional many-to-many relation. Reproducible: Always Steps to Reproduce: using System; using FluentNHibernate.Mapping; using FluentNHibernate; using FluentNHibernate.Cfg; using FluentNHibernate.Cfg.Db; using FluentNHibernate.Automapping; namespace Orm.Tests { public class ProductMap : ClassMap<Orm.Model.Product> { public ProductMap () { Id(x => x.Id); HasManyToMany<Orm.Model.Rule>(x => x.Rules); } } public class RuleMap : ClassMap<Orm.Model.Rule> { public RuleMap () { Id(x => x.Id); HasManyToMany<Orm.Model.Product>(x => x.Products); } } class MainClass { public static void Main (string[] args) { var fluentConfig = Fluently.Configure(). Database(MySQLConfiguration.Standard .Driver<global::NHibernate.Driver.MySqlDataDriver>() .ConnectionString("<connection here>") .Dialect<global::NHibernate.Dialect.MySQL5Dialect>() ) .Mappings(m => { m.FluentMappings.AddFromAssemblyOf<RuleMap>(); }); Configuration cfg = fluentConfig.BuildConfiguration(); <-- Crash } } } Actual Results: ** ERROR **: compute_class_bitmap: Invalid type 1e for field System.Collections.Generic.KeyValuePair`2[TKey,TValue]:key aborting... Stacktrace: at FluentNHibernate.MappingModel.AttributeStore.Equals (FluentNHibernate.MappingModel.AttributeStore) <IL 0x00027, 0xffffffff> at FluentNHibernate.MappingModel.AttributeStore.Equals (FluentNHibernate.MappingModel.AttributeStore) <IL 0x0000c, 0x00021> at FluentNHibernate.MappingModel.AttributeStore.Equals (object) <IL 0x0001b, 0x00042> at object.Equals (object,object) [0x00017] in /opt/mono/src/mcs/class/corlib/System/Object.cs:65 at FluentNHibernate.MappingModel.AttributeStore`1.Equals (FluentNHibernate.MappingModel.AttributeStore`1<T>) <IL 0x0000c, 0x0001b> at FluentNHibernate.MappingModel.AttributeStore`1.Equals (object) <IL 0x0001b, 0x00060> at object.Equals (object,object) [0x00017] in /opt/mono/src/mcs/class/corlib/System/Object.cs:65 at FluentNHibernate.MappingModel.Collections.CollectionMappingBase.Equals (FluentNHibernate.MappingModel.Collections.CollectionMappingBase) <IL 0x00022, 0x00045> at FluentNHibernate.MappingModel.Collections.BagMapping.Equals (FluentNHibernate.MappingModel.Collections.BagMapping) <IL 0x00018, 0x0003e> at FluentNHibernate.MappingModel.Collections.BagMapping.Equals (object) <IL 0x0001d, 0x00065> at System.Collections.Generic.EqualityComparer`1/DefaultComparer.Equals (T,T) [0x00015] in /opt/mono/src/mcs/class/corlib/System.Collections.Generic/EqualityComparer.cs:85 at System.Linq.Enumerable.Contains<TSource> (System.Collections.Generic.IEnumerable`1<TSource>,TSource,System.Collections.Generic.IEqualityComparer`1<TSource>) [0x00026] in /opt/mono/src/mcs/class/System.Core/System.Linq/Enumerable.cs:399 at System.Linq.Enumerable/<CreateExceptIterator>c__Iterator4`1.MoveNext () [0x00070] in /opt/mono/src/mcs/class/System.Core/System.Linq/Enumerable.cs:577 at System.Linq.Enumerable.Any<TSource> (System.Collections.Generic.IEnumerable`1<TSource>) [0x00024] in /opt/mono/src/mcs/class/System.Core/System.Linq/Enumerable.cs:136 at FluentNHibernate.Visitors.BiDirectionalManyToManyPairingVisitor.PairCollections (System.Collections.Generic.IEnumerable`1<FluentNHibernate.MappingModel.Collections.ICollectionMapping>) <IL 0x0000e, 0x00030> at FluentNHibernate.Visitors.BiDirectionalManyToManyPairingVisitor.PairCollections (System.Collections.Generic.IEnumerable`1<FluentNHibernate.MappingModel.Collections.ICollectionMapping>) <IL 0x000a8, 0x0018a> at FluentNHibernate.Visitors.BiDirectionalManyToManyPairingVisitor.Visit (System.Collections.Generic.IEnumerable`1<FluentNHibernate.MappingModel.HibernateMapping>) <IL 0x0000e, 0x00026> at FluentNHibernate.PersistenceModel.ApplyVisitors (System.Collections.Generic.IEnumerable`1<FluentNHibernate.MappingModel.HibernateMapping>) <IL 0x00017, 0x00062> at FluentNHibernate.PersistenceModel.BuildMappings () <IL 0x00036, 0x000ac> at FluentNHibernate.PersistenceModel.EnsureMappingsBuilt () <IL 0x0000b, 0x0001c> at FluentNHibernate.PersistenceModel.Configure (NHibernate.Cfg.Configuration) <IL 0x00001, 0x00023> at FluentNHibernate.Cfg.FluentMappingsContainer.Apply (NHibernate.Cfg.Configuration) <IL 0x000ae, 0x00187> at FluentNHibernate.Cfg.MappingConfiguration.Apply (NHibernate.Cfg.Configuration) <IL 0x0005c, 0x000d8> at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration () <IL 0x0000c, 0x0002c> at Orm.Tests.MainClass.Main (string[]) [0x00046] in /home/kuse/Code/CLI/Orm/Orm.Tests/Main.cs:114 at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x0001d, 0x00043> Native stacktrace: /opt/mono/bin/mono [0x80d9394] [0xb7746410] /lib/tls/i686/cmov/libc.so.6(abort+0x182) [0xb7509932] /lib/libglib-2.0.so.0 [0xb76b1046] /lib/libglib-2.0.so.0(g_log+0x26) [0xb76b1076] /opt/mono/bin/mono [0x8195be9] /opt/mono/bin/mono [0x8196ac8] /opt/mono/bin/mono [0x8196eb1] /opt/mono/bin/mono(mono_class_vtable+0x20) [0x8197cd0] /opt/mono/bin/mono [0x8075373] /opt/mono/bin/mono [0x8075dd6] /opt/mono/bin/mono [0x808c3bb] /opt/mono/bin/mono [0x8061b81] /opt/mono/bin/mono [0x8063ade] /opt/mono/bin/mono [0x806463e] /opt/mono/bin/mono [0x80dcea6] /opt/mono/bin/mono [0x80ddc2a] [0xb736d066] [0xb59d4f93] [0xb67c7ae3] [0xb59d4f44] [0xb59d4f11] [0xb67c7ae3] [0xb59d4e3e] [0xb59d4dbf] [0xb59d4d2e] [0xb59d4cc3] [0xb59d494f] [0xb59d3d33] [0xb59cd56f] [0xb59d1001] [0xb59d115b] [0xb59d0c77] [0xb59cad2b] [0xb59e38d5] [0xb59e380d] [0xb59e352c] [0xb5b37310] [0xb5b27c61] [0xb5b27a95] [0xb67b9270] [0xb67b9374] /opt/mono/bin/mono [0x8064721] /opt/mono/bin/mono(mono_runtime_invoke+0x40) [0x8194d30] /opt/mono/bin/mono(mono_runtime_exec_main+0xd6) [0x8198426] /opt/mono/bin/mono(mono_runtime_run_main+0x112) [0x819a7c2] /opt/mono/bin/mono(mono_main+0x1971) [0x80b6bc1] /opt/mono/bin/mono [0x805b565] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb74f2b56] /opt/mono/bin/mono [0x805b4a1] Debug info from gdb: Mono support loaded. [Thread debugging using libthread_db enabled] [New Thread 0xb63d4b70 (LWP 3038)] [New Thread 0xb7732b70 (LWP 3037)] [New Thread 0xb736cb70 (LWP 3036)] 0xb7746422 in __kernel_vsyscall () 4 Thread 0xb736cb70 (LWP 3036) 0xb7746422 in __kernel_vsyscall () 3 Thread 0xb7732b70 (LWP 3037) 0xb7746422 in __kernel_vsyscall () 2 Thread 0xb63d4b70 (LWP 3038) 0xb7746422 in __kernel_vsyscall () * 1 Thread 0xb74a96f0 (LWP 3035) 0xb7746422 in __kernel_vsyscall () Thread 4 (Thread 0xb736cb70 (LWP 3036)): #0 0xb7746422 in __kernel_vsyscall () #1 0xb7650e15 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x08217160 in GC_wait_marker () at pthread_support.c:1785 #3 0x0820fa00 in GC_help_marker (my_mark_no=7) at mark.c:1116 #4 0x08215fd6 in GC_mark_thread (id=0x0) at pthread_support.c:548 #5 0xb764c80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #6 0xb75a88de in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 3 (Thread 0xb7732b70 (LWP 3037)): #0 0xb7746422 in __kernel_vsyscall () #1 0xb7654466 in nanosleep () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x081de868 in collection_thread (unused=0x0) at collection.c:34 #3 0xb764c80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #4 0xb75a88de in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 2 (Thread 0xb63d4b70 (LWP 3038)): #0 0xb7746422 in __kernel_vsyscall () #1 0xb7652f75 in sem_wait@@GLIBC_2.1 () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x08207428 in mono_sem_wait (sem=0x82d460c, alertable=0) at mono-semaphore.c:102 #3 0x08147718 in finalizer_thread (unused=0x0) at gc.c:1033 #4 0x081c6355 in start_wrapper (data=0x83dc360) at threads.c:739 #5 0x081fa20e in thread_start_routine (args=0x83f5cec) at wthreads.c:286 #6 0x08216dfd in GC_start_routine (arg=0x4efe0) at pthread_support.c:1390 #7 0xb764c80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #8 0xb75a88de in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 1 (Thread 0xb74a96f0 (LWP 3035)): #0 0xb7746422 in __kernel_vsyscall () #1 0xb7653c8b in read () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x080d9564 in read (signal=6, ctx=0xbf89bd7c) at /usr/include/bits/unistd.h:45 #3 mono_handle_native_sigsegv (signal=6, ctx=0xbf89bd7c) at mini-exceptions.c:1947 #4 <signal handler called> #5 0xb7746422 in __kernel_vsyscall () #6 0xb75064d1 in raise () from /lib/tls/i686/cmov/libc.so.6 #7 0xb7509932 in abort () from /lib/tls/i686/cmov/libc.so.6 #8 0xb76b1046 in g_logv () from /lib/libglib-2.0.so.0 #9 0xb76b1076 in g_log () from /lib/libglib-2.0.so.0 #10 0x08195be9 in compute_class_bitmap (class=<value optimized out>, bitmap=0xbf89c6f8, size=<value optimized out>, offset=0, max_set=0xbf89c70c, static_fields=0) at object.c:718 #11 0x08196ac8 in mono_class_compute_gc_descriptor (class="System.Collections.Generic.KeyValuePair`2") at object.c:943 #12 0x08196eb1 in mono_class_create_runtime_vtable (domain=0x25e70, class="System.Collections.Generic.KeyValuePair`2", raise_on_error=0) at object.c:1861 #13 mono_class_vtable_full (domain=0x25e70, class="System.Collections.Generic.KeyValuePair`2", raise_on_error=0) at object.c:1743 #14 0x08197cd0 in mono_class_vtable (domain=0x25e70, class="System.Collections.Generic.KeyValuePair`2") at object.c:1714 #15 0x08075373 in handle_alloc (cfg=0x8752c48, klass="System.Collections.Generic.KeyValuePair`2", for_box=<value optimized out>) at method-to-ir.c:2991 #16 0x08075dd6 in handle_box (cfg=0x8752c48, val=0x875a3d4, klass="System.Collections.Generic.KeyValuePair`2") at method-to-ir.c:3070 #17 0x0808c3bb in mono_method_to_ir (cfg=0x8752c48, method="FluentNHibernate.MappingModel.EqualityExtensions:ContentEquals ()", start_bblock=0x0, end_bblock=0x0, return_var=0x0, dont_inline=0x0, inline_args=0x0, inline_offset=0, is_virtual_call=0) at method-to-ir.c:6150 #18 0x08061b81 in mini_method_compile (method="FluentNHibernate.MappingModel.EqualityExtensions:ContentEquals ()", opts=59861503, domain=0x25e70, run_cctors=1, compile_aot=<value optimized out>, parts=0) at mini.c:4019 #19 0x08063ade in mono_jit_compile_method_inner (method="FluentNHibernate.MappingModel.EqualityExtensions:ContentEquals ()", opt=<value optimized out>, ex=<value optimized out>) at mini.c:4681 #20 mono_jit_compile_method_with_opt (method="FluentNHibernate.MappingModel.EqualityExtensions:ContentEquals ()", opt=<value optimized out>, ex=<value optimized out>) at mini.c:4881 #21 0x0806463e in mono_jit_compile_method (method="FluentNHibernate.MappingModel.EqualityExtensions:ContentEquals ()") at mini.c:4906 #22 0x080dcea6 in common_call_trampoline (regs=<value optimized out>, code=0xb59d4fd9 "\203\304\020\205\300t \213e\f\...@\f\213m\b\213i\f\272\064\351u\b\203\354\bqp\350\t", arg=<value optimized out>, tramp=0x0, vt=0x0, vtable_slot=0x0, need_rgctx_tramp=0) at mini-trampolines.c:492 #23 0x080ddc2a in mono_magic_trampoline (regs=0xbf89cdc8, code=0xb59d4fd9 "\203\304\020\205\300t \213e\f\...@\f\213m\b\213i\f\272\064\351u\b\203\354\bqp\350\t", arg=0x875d2d0, tramp=0x0) at mini-trampolines.c:611 #24 0xb736d066 in ?? () #25 0xb59d4f93 in ?? () #26 0xb67c7ae3 in ?? () #27 0xb59d4f44 in ?? () #28 0xb59d4f11 in ?? () #29 0xb67c7ae3 in ?? () #30 0xb59d4e3e in ?? () #31 0xb59d4dbf in ?? () #32 0xb59d4d2e in ?? () #33 0xb59d4cc3 in ?? () #34 0xb59d494f in ?? () #35 0xb59d3d33 in ?? () #36 0xb59cd56f in ?? () #37 0xb59d1001 in ?? () #38 0xb59d115b in ?? () #39 0xb59d0c77 in ?? () #40 0xb59cad2b in ?? () #41 0xb59e38d5 in ?? () #42 0xb59e380d in ?? () #43 0xb59e352c in ?? () #44 0xb5b37310 in ?? () #45 0xb5b27c61 in ?? () #46 0xb5b27a95 in ?? () #47 0xb67b9270 in ?? () #48 0xb67b9374 in ?? () #49 0x08064721 in mono_jit_runtime_invoke (method="Orm.Tests.MainClass:Main ()", obj=0x0, params=0xbf89d36c, exc=0x0) at mini.c:5234 #50 0x08194d30 in mono_runtime_invoke (method="Orm.Tests.MainClass:Main ()", obj=0x0, params=0xbf89d36c, exc=0x0) at object.c:2692 #51 0x08198426 in mono_runtime_exec_main (method="Orm.Tests.MainClass:Main ()", args=0x2de50, exc=0x0) at object.c:3825 #52 0x0819a7c2 in mono_runtime_run_main (method="Orm.Tests.MainClass:Main ()", argc=1, argv=0xbf89d59c, exc=0x0) at object.c:3450 #53 0x080b6bc1 in main_thread_handler (argc=3, argv=0xbf89d594) at driver.c:997 #54 mono_main (argc=3, argv=0xbf89d594) at driver.c:1766 #55 0x0805b565 in main (argc=3, argv=0xbf89d594) at main.c:34 ================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= The application was terminated by a signal: SIGIOT Expected Results: No error -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
