[Mono-bugs] [Bug 400716] New: Runtime crash with generics nested IEnumerable iteration

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Jun 16 21:20:42 EDT 2008


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


           Summary: Runtime crash with generics nested IEnumerable iteration
           Product: Mono: Runtime
           Version: SVN
          Platform: x86-64
        OS/Version: openSUSE 11.0
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: generics
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: jpryor at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Steps to reproduce:

1. Compile the attached program: gmcs crash.cs
2. Run the resulting program: mono crash.exe

Expected result: 

  b
  c
  d
  a
  a
  e
  f
  g

Actual result:

$ mono crash.exe 
System.Array.InternalEnumerator<System.Char[]> doesn't implement interface
System.Collections.Generic.IEnumerator<System.Collections.Generic.IEnumerable<System.Char>>
**
** ERROR:(mini-trampolines.c:67):mono_convert_imt_slot_to_vtable_slot: code
should not be reached
Stacktrace:

  at <>c__CompilerGenerated0`1.MoveNext () <0xffffffff>
  at <>c__CompilerGenerated0`1.MoveNext () <0x0010e>
  at <>c__CompilerGenerated1`1.MoveNext () <0x005f8>
  at Crash.Test.Main () <0x001ce>
  at (wrapper runtime-invoke) System.Object.runtime_invoke_void
(object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

        mono [0x55e5b1]
        /lib64/libpthread.so.0 [0x7fbd5f820b30]
        /lib64/libc.so.6(gsignal+0x35) [0x7fbd5f2955c5]
        /lib64/libc.so.6(abort+0x183) [0x7fbd5f296bb3]
        /usr/lib64/libglib-2.0.so.0(g_assertion_message+0x117) [0x7fbd600c32a7]
        mono [0x426870]
        mono [0x426d53]
        [0x41898165]

Debug info from gdb:

[Thread debugging using libthread_db enabled]
[New Thread 0x7fbd60723730 (LWP 6976)]
[New Thread 0x4202d950 (LWP 6978)]
[New Thread 0x41ce6950 (LWP 6977)]
0x00007fbd5f81f90b in read () from /lib64/libpthread.so.0
  3 Thread 0x41ce6950 (LWP 6977)  0x00007fbd5f820251 in nanosleep ()
   from /lib64/libpthread.so.0
  2 Thread 0x4202d950 (LWP 6978)  0x00007fbd5f81cdd9 in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  1 Thread 0x7fbd60723730 (LWP 6976)  0x00007fbd5f81f90b in read ()
   from /lib64/libpthread.so.0

Thread 3 (Thread 0x41ce6950 (LWP 6977)):
#0  0x00007fbd5f820251 in nanosleep () from /lib64/libpthread.so.0
#1  0x00000000004f01f2 in collection_thread (unused=<value optimized out>)
    at collection.c:34
#2  0x00007fbd5f819040 in start_thread () from /lib64/libpthread.so.0
#3  0x00007fbd5f3360cd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x4202d950 (LWP 6978)):
#0  0x00007fbd5f81cdd9 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x00000000004fc7a5 in timedwait_signal_poll_cond (cond=0x8c46a8, 
    mutex=0x8c4680, timeout=0x1, alertable=-1) at handles.c:1492
#2  0x00000000004feedf in _wapi_handle_timedwait_signal_handle (
    handle=<value optimized out>, timeout=0x0, alertable=9193088)
    at handles.c:1572
#3  0x00000000004ffc9e in WaitForSingleObjectEx (handle=0x404, 
    timeout=4294967295, alertable=0) at wait.c:200
#4  0x000000000048c8e3 in finalizer_thread (unused=<value optimized out>)
    at gc.c:905
#5  0x00000000004b83e3 in start_wrapper (data=<value optimized out>)
    at threads.c:621
#6  0x000000000050aa0b in thread_start_routine (args=0x8c49d8) at threadsc:279
#7  0x000000000051e872 in GC_start_routine (arg=<value optimized out>)
    at pthread_support.c:1369
#8  0x00007fbd5f819040 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fbd5f3360cd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fbd60723730 (LWP 6976)):
#0  0x00007fbd5f81f90b in read () from /lib64/libpthread.so.0
#1  0x000000000055e71c in mono_handle_native_sigsegv (
    signal=<value optimized out>, ctx=<value optimized out>)
    at mini-exceptions.c:1182
#2  <signal handler called>
#3  0x00007fbd5f2955c5 in raise () from /lib64/libc.so.6
#4  0x00007fbd5f296bb3 in abort () from /lib64/libc.so.6
#5  0x00007fbd600c32a7 in g_assertion_message ()
   from /usr/lib64/libglib-2.0.so.0
#6  0x0000000000426870 in mono_convert_imt_slot_to_vtable_slot (slot=0x8f4b18, 
    regs=<value optimized out>, code=<value optimized out>, 
    method=<value optimized out>, impl_method=0x7fff68746fd0)
    at mini-trampolines.c:67
#7  0x0000000000426d53 in mono_magic_trampoline (regs=0x7fff687471e0, 
    code=0x41cd492e
"L\213�M\211w\030H\213\205x���H\017�@0\205�t6H\213\205x���H\213�H\213I\030H\211H
H\213\205x����@4\001", m=0x918ae0, 
    tramp=<value optimized out>) at mini-trampolines.c:152
#8  0x0000000041898165 in ?? ()
#9  0x00000000008f4390 in ?? ()
#10 0x00000000004267c6 in mono_convert_imt_slot_to_vtable_slot (
    slot=0x7fbd60566f80, regs=<value optimized out>, 
    code=<value optimized out>, method=<value optimized out>, 
    impl_method=0x7fbd60566f80) at mini-trampolines.c:69
#11 0x0000000000426c29 in mono_magic_trampoline (regs=0x7fff68747280, 
    code=0x41cd4319 "L\213�I\201��", m=0x973c00, tramp=<value optimized
out>)
    at mini-trampolines.c:258
#12 0x0000000041898170 in ?? ()
#13 0x0000000000000000 in ?? ()
#0  0x00007fbd5f81f90b in read () from /lib64/libpthread.so.0

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

Aborted
jon at lina:tmp$ mono crash.exe 
System.Array.InternalEnumerator<System.Char[]> doesn't implement interface
System.Collections.Generic.IEnumerator<System.Collections.Generic.IEnumerable<System.Char>>
**
** ERROR:(mini-trampolines.c:67):mono_convert_imt_slot_to_vtable_slot: code
should not be reached
Stacktrace:

  at <>c__CompilerGenerated0`1.MoveNext () <0xffffffff>
  at <>c__CompilerGenerated0`1.MoveNext () <0x0010e>
  at <>c__CompilerGenerated1`1.MoveNext () <0x005f8>
  at Crash.Test.Main () <0x001ce>
  at (wrapper runtime-invoke) System.Object.runtime_invoke_void
(object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

        mono [0x55e5b1]
        /lib64/libpthread.so.0 [0x7ff16c5fbb30]
        /lib64/libc.so.6(gsignal+0x35) [0x7ff16c0705c5]
        /lib64/libc.so.6(abort+0x183) [0x7ff16c071bb3]
        /usr/lib64/libglib-2.0.so.0(g_assertion_message+0x117) [0x7ff16ce9e2a7]
        mono [0x426870]
        mono [0x426d53]
        [0x41989165]

Debug info from gdb:

[Thread debugging using libthread_db enabled]
[New Thread 0x7ff16d4fe730 (LWP 7110)]
[New Thread 0x40ba3950 (LWP 7112)]
[New Thread 0x41aea950 (LWP 7111)]
0x00007ff16c5fa90b in read () from /lib64/libpthread.so.0
  3 Thread 0x41aea950 (LWP 7111)  0x00007ff16c5fb251 in nanosleep () from
/lib64/libpthread.so.0
  2 Thread 0x40ba3950 (LWP 7112)  0x00007ff16c5f7dd9 in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
  1 Thread 0x7ff16d4fe730 (LWP 7110)  0x00007ff16c5fa90b in read () from
/lib64/libpthread.so.0

Thread 3 (Thread 0x41aea950 (LWP 7111)):
#0  0x00007ff16c5fb251 in nanosleep () from /lib64/libpthread.so.0
#1  0x00000000004f01f2 in collection_thread (unused=<value optimized out>) at
collection.c:34
#2  0x00007ff16c5f4040 in start_thread () from /lib64/libpthread.so.0
#3  0x00007ff16c1110cd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x40ba3950 (LWP 7112)):
#0  0x00007ff16c5f7dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x00000000004fc7a5 in timedwait_signal_poll_cond (cond=0x8c46a8,
mutex=0x8c4680, timeout=0x1, alertable=-1) at handles.c:1492
#2  0x00000000004feedf in _wapi_handle_timedwait_signal_handle (handle=<value
optimized out>, timeout=0x0, alertable=9193088) at handles.c:1572
#3  0x00000000004ffc9e in WaitForSingleObjectEx (handle=0x404,
timeout=4294967295, alertable=0) at wait.c:200
#4  0x000000000048c8e3 in finalizer_thread (unused=<value optimized out>) at
gc.c:905
#5  0x00000000004b83e3 in start_wrapper (data=<value optimized out>) at
threads.c:621
#6  0x000000000050aa0b in thread_start_routine (args=0x8c49d8) at threadsc:279
#7  0x000000000051e872 in GC_start_routine (arg=<value optimized out>) at
pthread_support.c:1369
#8  0x00007ff16c5f4040 in start_thread () from /lib64/libpthread.so.0
#9  0x00007ff16c1110cd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ff16d4fe730 (LWP 7110)):
#0  0x00007ff16c5fa90b in read () from /lib64/libpthread.so.0
#1  0x000000000055e71c in mono_handle_native_sigsegv (signal=<value optimized
out>, ctx=<value optimized out>) at mini-exceptions.c:1182
#2  <signal handler called>
#3  0x00007ff16c0705c5 in raise () from /lib64/libc.so.6
#4  0x00007ff16c071bb3 in abort () from /lib64/libc.so.6
#5  0x00007ff16ce9e2a7 in g_assertion_message () from
/usr/lib64/libglib-2.0.so.0
#6  0x0000000000426870 in mono_convert_imt_slot_to_vtable_slot (slot=0x8f4b18,
regs=<value optimized out>, code=<value optimized out>, 
    method=<value optimized out>, impl_method=0x7fff75523830) at
mini-trampolines.c:67
#7  0x0000000000426d53 in mono_magic_trampoline (regs=0x7fff75523a40, 
    code=0x41ad892e
"L\213�M\211w\030H\213\205x���H\017�@0\205�t6H\213\205x���H\213�H\213I\030H\211H
H\213\205x����@4\001", m=0x918ae0, 
    tramp=<value optimized out>) at mini-trampolines.c:152
#8  0x0000000041989165 in ?? ()
#9  0x00000000008f4390 in ?? ()
#10 0x00000000004267c6 in mono_convert_imt_slot_to_vtable_slot
(slot=0x7ff16d341f80, regs=<value optimized out>, code=<value optimized out>, 
    method=<value optimized out>, impl_method=0x7ff16d341f80) at
mini-trampolines.c:69
#11 0x0000000000426c29 in mono_magic_trampoline (regs=0x7fff75523ae0,
code=0x41ad8319 "L\213�I\201��", m=0x973c00, tramp=<value optimized out>)
    at mini-trampolines.c:258
#12 0x0000000041989170 in ?? ()
#13 0x0000000000000000 in ?? ()
#0  0x00007ff16c5fa90b in read () from /lib64/libpthread.so.0

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

Aborted


-- 
Configure bugmail: https://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