[Mono-bugs] [Bug 555464] New: reflection.c:2609:get_field_on_inst_generic_type: assertion

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Nov 13 16:13:34 EST 2009


http://bugzilla.novell.com/show_bug.cgi?id=555464


           Summary: reflection.c:2609:get_field_on_inst_generic_type:
                    assertion
    Classification: Mono
           Product: Mono: Runtime
           Version: SVN
          Platform: x86-64
        OS/Version: Linux
            Status: NEW
          Keywords: blocking
          Severity: Major
          Priority: P5 - None
         Component: generics
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: basile at starynkevitch.net
         QAContact: mono-bugs at lists.ximian.com
          Found By: Community User


Description of Problem:
ERROR:reflection.c:2609:get_field_on_inst_generic_type: assertion
failed: (field_index >= 0 && field_index < dgclass->count_fields)

0. System is Debian/Sid/AMD64. gcc compiler is 
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.4-6'
--with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.3.4 (Debian 4.3.4-6) 



Steps to reproduce the problem:
1. Retrieve MONO trunk from svn rev 146160 
svn info * gives

  Path: libgdiplus
URL: http://anonsvn.mono-project.com/source/trunk/libgdiplus
Repository Root: http://anonsvn.mono-project.com/source
Repository UUID: e3ebcda4-bce8-0310-ba0a-eca2169e7518
Revision: 146117
Node Kind: directory
Schedule: normal
Last Changed Author: fejj
Last Changed Rev: 140293
Last Changed Date: 2009-08-19 23:37:28 +0200 (Wed, 19 Aug 2009)

Path: mcs
URL: http://anonsvn.mono-project.com/source/trunk/mcs
Repository Root: http://anonsvn.mono-project.com/source
Repository UUID: e3ebcda4-bce8-0310-ba0a-eca2169e7518
Revision: 146160
Node Kind: directory
Schedule: normal
Last Changed Author: marek
Last Changed Rev: 146159
Last Changed Date: 2009-11-13 17:24:06 +0100 (Fri, 13 Nov 2009)

Path: mono
URL: http://anonsvn.mono-project.com/source/trunk/mono
Repository Root: http://anonsvn.mono-project.com/source
Repository UUID: e3ebcda4-bce8-0310-ba0a-eca2169e7518
Revision: 146160
Node Kind: directory
Schedule: normal
Last Changed Author: zoltan
Last Changed Rev: 146109
Last Changed Date: 2009-11-13 07:36:08 +0100 (Fri, 13 Nov 2009)


### the build of mono goes well, giving
% /usr/local/bin/mono -V
Mono JIT compiler version 2.7 (/trunk/mono r146116 Fri Nov 13 12:02:21 MET
2009)
Copyright (C) 2002-2009 Novell, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    GC:            Included Boehm (with typed GC and Parallel Mark)
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none

Retrieve nemerle trunk svn revision 8434
svn info nemerle gives
% svn info nemerle/ 
Path: nemerle
URL: http://nemerle.googlecode.com/svn/nemerle/trunk
Repository Root: http://nemerle.googlecode.com/svn
Repository UUID: c8a6711f-211a-0410-a8d5-2f220496d6d1
Revision: 8434
Node Kind: directory
Schedule: normal
Last Changed Author: vc at rsdn.ru
Last Changed Rev: 8434
Last Changed Date: 2009-11-11 21:09:20 +0100 (Wed, 11 Nov 2009)


Configure nemerle with

bash ./configure --mono-from=/usr/local/bin/  --enable-time 

Then build nemerle with
  make

2
Actual Results:

The build fails with

ERROR:reflection.c:2609:get_field_on_inst_generic_type: assertion
failed: (field_index >= 0 && field_index < dgclass->count_fields)
Stacktrace:

  at (wrapper managed-to-native) System.MonoType.GetField
(System.MonoType*,string,System.Reflection.BindingFlags) <0x00051>
  at (wrapper managed-to-native) System.MonoType.GetField
(System.MonoType*,string,System.Reflection.BindingFlags) <0x00051>
  at System.MonoType.GetField (System.Reflection.FieldInfo) <0x00088>
  at System.Reflection.Emit.TypeBuilder.GetField
(System.Type,System.Reflection.FieldInfo) <0x0001b>
  at Nemerle.Compiler.ILEmitter.FrameworkGetField
(System.Type,System.Reflection.FieldInfo) <0x000e7>
  at Nemerle.Compiler.ILEmitter.GetFieldInfo
(System.Type,Nemerle.Compiler.IField) <0x00047>
  at Nemerle.Compiler.ILEmitter.emit
(Nemerle.Compiler.Typedtree.TExpr) <0x05b7b>
  at Nemerle.Compiler.ILEmitter.emit
(Nemerle.Compiler.Typedtree.TExpr) <0x044d7>
  at Nemerle.Compiler.ILEmitter.emit
(Nemerle.Compiler.Typedtree.TExpr) <0x01c27>
  at Nemerle.Compiler.ILEmitter.emit
(Nemerle.Compiler.Typedtree.TExpr) <0x01e2b>
  at Nemerle.Compiler.ILEmitter.emit
(Nemerle.Compiler.Typedtree.TExpr) <0x01e2b>
  at Nemerle.Compiler.ILEmitter.emit
(Nemerle.Compiler.Typedtree.TExpr) <0x03a47>
  at Nemerle.Compiler.ILEmitter.Run () <0x00127>
  at Nemerle.Compiler.MethodBuilder/
_N__N_lambda__59337__59458.apply_void () <0x000c7>
  at Nemerle.Compiler.TypeBuilder.FinalizeType () <0x000cd>
  at Nemerle.Compiler.TypeBuilder.EmitImplementation () <0x001f3>
  at Nemerle.Compiler.TypesManager/_N_emit_impl__52700.apply_void
(Nemerle.Compiler.TypeBuilder) <0x0005b>
  at Nemerle.Compiler.TypesManager/_N_maybe_f__53272.apply_void
(Nemerle.Compiler.TypeBuilder) <0x00196>
  at Nemerle.Collections.NList.Iter<object>
(Nemerle.Core.list`1<object>,Nemerle.Builtins.FunctionVoid`1<object>)
<0x000bf>
  at Nemerle.Core.list`1<object>.Iter
(Nemerle.Builtins.FunctionVoid`1<object>) <0x00033>
  at Nemerle.Compiler.TypesManager.Iter
(Nemerle.Core.list`1<Nemerle.Compiler.TypeBuilder>,Nemerle.Builtins.FunctionVoid`1<Nemerle.Compiler.TypeBuilder>)
<0x0008f>
  at Nemerle.Compiler.TypesManager.Iter
(Nemerle.Builtins.FunctionVoid`1<Nemerle.Compiler.TypeBuilder>)
<0x0002f>
  at Nemerle.Compiler.TypesManager.compile_all_tyinfos (bool)
<0x0018f>
  at Nemerle.Compiler.TypesManager/
_N__N_lambda__52140__52243.apply_void () <0x00034>
  at Nemerle.Compiler.Solver.Enqueue (Nemerle.Builtins.FunctionVoid)
<0x0004c>
  at Nemerle.Compiler.TypesManager.EmitDecls () <0x0005b>
  at Nemerle.Compiler.ManagerClass.Run () <0x0056f>
  at Nemerle.CommandlineCompiler.MainClass.main_with_catching ()
<0x00153>
  at Nemerle.CommandlineCompiler.MainClass.Main () <0x001ef>
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) <0x00049>

Native stacktrace:

        /usr/local/bin///mono [0x4883c6]
        /lib/libpthread.so.0 [0x2b9de1a9b990]
        /lib/libc.so.6(gsignal+0x35) [0x2b9de1f5df25]
        /lib/libc.so.6(abort+0x180) [0x2b9de1f60d60]
        /lib/libglib-2.0.so.0(g_assertion_message+0x100) [0x2b9de141bad0]
        /lib/libglib-2.0.so.0 [0x2b9de141c052]
        /usr/local/bin///mono [0x56dbac]
        /usr/local/bin///mono(mono_field_get_object+0x165) [0x57ba05]
        /usr/local/bin///mono [0x4e3f74]
        [0x41f295b1]

Debug info from gdb:

Mono support loaded.
[Thread debugging using libthread_db enabled]
[New Thread 0x2aaaac222910 (LWP 11356)]
[New Thread 0x2aaaabfc1910 (LWP 11355)]
[New Thread 0x2aaaab0ae910 (LWP 11354)]
[New Thread 0x2aaaaaead910 (LWP 11353)]
[New Thread 0x2aaaaacac910 (LWP 11352)]
0x00002b9de1a9a90b in read () from /lib/libpthread.so.0
  6 Thread 0x2aaaaacac910 (LWP 11352)  0x00002b9de1a97f89 in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  5 Thread 0x2aaaaaead910 (LWP 11353)  0x00002b9de1a97f89 in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  4 Thread 0x2aaaab0ae910 (LWP 11354)  0x00002b9de1a97f89 in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
  3 Thread 0x2aaaabfc1910 (LWP 11355)  0x00002b9de1a9b131 in nanosleep
()
   from /lib/libpthread.so.0
  2 Thread 0x2aaaac222910 (LWP 11356)  0x00002b9de1a99c61 in sem_wait
()
   from /lib/libpthread.so.0
* 1 Thread 0x2b9de24af0b0 (LWP 11351)  0x00002b9de1a9a90b in read ()
   from /lib/libpthread.so.0

Thread 6 (Thread 0x2aaaaacac910 (LWP 11352)):
#0  0x00002b9de1a97f89 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1  0x00000000005b4203 in GC_wait_marker () at pthread_support.c:1785
#2  0x00000000005b5f84 in GC_help_marker (my_mark_no=57) at mark.c:
1116
#3  0x00000000005b2f50 in GC_mark_thread (id=0x0) at pthread_support.c:
548
#4  0x00002b9de1a9373a in start_thread () from /lib/libpthread.so.0
#5  0x00002b9de1ff72fd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x2aaaaaead910 (LWP 11353)):
#0  0x00002b9de1a97f89 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1  0x00000000005b4203 in GC_wait_marker () at pthread_support.c:1785
#2  0x00000000005b5f84 in GC_help_marker (my_mark_no=57) at mark.c:
1116
#3  0x00000000005b2f50 in GC_mark_thread (id=0x1) at pthread_support.c:
548
#4  0x00002b9de1a9373a in start_thread () from /lib/libpthread.so.0
#5  0x00002b9de1ff72fd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x2aaaab0ae910 (LWP 11354)):
#0  0x00002b9de1a97f89 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/libpthread.so.0
#1  0x00000000005b4203 in GC_wait_marker () at pthread_support.c:1785
#2  0x00000000005b5f84 in GC_help_marker (my_mark_no=57) at mark.c:
1116
#3  0x00000000005b2f50 in GC_mark_thread (id=0x2) at pthread_support.c:
548
#4  0x00002b9de1a9373a in start_thread () from /lib/libpthread.so.0
#5  0x00002b9de1ff72fd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x2aaaabfc1910 (LWP 11355)):
#0  0x00002b9de1a9b131 in nanosleep () from /lib/libpthread.so.0
#1  0x00000000005a6b02 in collection_thread (unused=<value optimized
out>)
    at collection.c:34
#2  0x00002b9de1a9373a in start_thread () from /lib/libpthread.so.0
#3  0x00002b9de1ff72fd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x2aaaac222910 (LWP 11356)):
#0  0x00002b9de1a99c61 in sem_wait () from /lib/libpthread.so.0
#1  0x000000000056cb00 in finalizer_thread (unused=<value optimized
out>)
    at gc.c:1022
#2  0x00000000004ee095 in start_wrapper (data=<value optimized out>)
    at threads.c:721
#3  0x00000000005a1093 in thread_start_routine (args=0x255f970)
    at wthreads.c:286
#4  0x00000000005b3e96 in GC_start_routine (arg=0x2aaaab0d4e70)
    at pthread_support.c:1390
#5  0x00002b9de1a9373a in start_thread () from /lib/libpthread.so.0
#6  0x00002b9de1ff72fd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x2b9de24af0b0 (LWP 11351)):
#0  0x00002b9de1a9a90b in read () from /lib/libpthread.so.0
#1  0x000000000048852b in mono_handle_native_sigsegv (
    signal=<value optimized out>, ctx=<value optimized out>)
    at mini-exceptions.c:1808
#2  <signal handler called>
#3  0x00002b9de1f5df25 in raise () from /lib/libc.so.6
#4  0x00002b9de1f60d60 in abort () from /lib/libc.so.6
#5  0x00002b9de141bad0 in IA__g_assertion_message
(domain=0x2b9de145951e "",
    file=0x5d79f8 "reflection.c", line=<value optimized out>, func=
    0x676470 "get_field_on_inst_generic_type", message=<value
optimized out>)
    at /tmp/buildd/glib2.0-2.22.2/glib/gtestutils.c:1302
#6  0x00002b9de141c052 in IA__g_assertion_message_expr (domain=0x0,
file=
    0x5d79f8 "reflection.c", line=2609, func=
    0x676470 "get_field_on_inst_generic_type", expr=<value optimized
out>)
    at /tmp/buildd/glib2.0-2.22.2/glib/gtestutils.c:1313
#7  0x000000000056dbac in get_field_on_inst_generic_type (
    field=<value optimized out>) at reflection.c:2609
#8  0x000000000057ba05 in mono_field_get_object
(domain=0x2aaaab0d3db0, klass=
    "Nil", field=0x3452928) at reflection.c:6444
#9  0x00000000004e3f74 in ves_icall_Type_GetField (type=<value
optimized out>,
    name=0x2aaaad6f1380, bflags=24) at icall.c:3303
#10 0x0000000041f295b1 in ?? ()
#11 0x0000000002521e60 in ?? ()
#12 0x00002aaaae7ad220 in ?? ()
#13 0x00007fffa67586d0 in ?? ()
#14 0x0000000000000000 in ?? ()

=================================================================
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.
=================================================================

Command terminated by signal 6
80.45user 0.86system 1:00.68elapsed 133%CPU (0avgtext+0avgdata
0maxresident)k
0inputs+0outputs (0major+30556minor)pagefaults 0swaps
make[3]: *** [out.stage1/Nemerle.stage1.dll] Error 134 



Expected Results:
The build of something using MONO should not crash MONO's runtime

How often does this happen? 
Systematic & repeatable failure


Additional Information:


See http://groups.google.com/group/nemerle-en/msg/0578a379273127ac for all
details and motivations


Regards

-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***

-- 
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.


More information about the mono-bugs mailing list