[Mono-dev] SIGSEGV from bad generic type (bug 30085)

Miguel de Icaza miguel at xamarin.com
Thu May 28 21:04:31 UTC 2015


Updated the bug report.

Not sure why this has all of a sudden become an issue that was reported
twice.  Do you happen to know?

On Thu, May 28, 2015 at 4:29 PM, Miguel de Icaza <miguel at xamarin.com> wrote:

> Hello,
>
> There is already a similar pull request.
>
> The issue is that returning NULL there has a slightly different meaning.
> So the complete fix is to restructure some of the code.
>
> https://github.com/mono/mono/pull/1817
>
> Miguel
>
> On Thu, May 28, 2015 at 4:25 PM, David Curylo <curylod at asme.org> wrote:
>
>> Found the issue and created PR 1839:
>> https://github.com/mono/mono/pull/1839
>>
>> Please take a look and let me know if you have any concerns with the fix.
>>
>> Thanks,
>> Dave
>>
>> On May 28, 2015, at 3:51 PM, David Curylo <curylod at asme.org> wrote:
>>
>> I’m researching an issue reported by a colleague of mine.  The error is
>> rather serious as the use of a bad type name causes a native SIGSEGV and
>> kills the runtime, when it really should just return a null because it
>> can’t find the type.  This code reproduces the issue:
>>
>> System.Type.GetType("System.Nullable`1[[System.Int32, mscorlibBAD]]")
>>
>> Since I see there is some work going on with System.Type, I was hopeful
>> that mono master would no longer have this issue, but it still exists.
>> This is what I’m getting in the thread dump when this occurs and the root
>> cause appears to be somewhere in _mono_reflection_get_type_from_info.  Any
>> ideas what may be the root cause here?
>>
>>
>> Thread 1 (Thread 0x7f28ae81f7c0 (LWP 76562)):
>> #0  0x00007f28adcf7ee9 in __libc_waitpid (pid=pid at entry=76565,
>> stat_loc=stat_loc at entry=0x7f28ae82919c, options=options at entry=0) at
>> ../sysdeps/unix/sysv/linux/waitpid.c:40
>> #1  0x00000000004a2015 in mono_handle_native_sigsegv (signal=signal at entry=11,
>> ctx=ctx at entry=0x7f28ae829ac0, info=info at entry=0x7f28ae829bf0) at
>> mini-exceptions.c:2226
>> #2  0x00000000004f782e in mono_arch_handle_altstack_exception
>> (sigctx=sigctx at entry=0x7f28ae829ac0, siginfo=siginfo at entry=0x7f28ae829bf0,
>> fault_addr=<optimized out>, stack_ovf=stack_ovf at entry=0) at
>> exceptions-amd64.c:858
>> #3  0x0000000000422f28 in mono_sigsegv_signal_handler (_dummy=11,
>> _info=0x7f28ae829bf0, context=0x7f28ae829ac0) at mini-runtime.c:2526
>> #4  <signal handler called>
>> *#5  0x00000000005bcb91 in _mono_reflection_get_type_from_info
>> (info=0x1efb270, image=image at entry=0x0, ignorecase=ignorecase at entry=0) at
>> reflection.c:7450*
>> #6  0x00000000005bc750 in mono_reflection_get_type_internal
>> (rootimage=rootimage at entry=0x0, image=<optimized out>, info=info at entry=0x7fff8b7388e0,
>> ignorecase=ignorecase at entry=0) at reflection.c:7565
>> #7  0x00000000005bc9b3 in mono_reflection_get_type_with_rootimage
>> (rootimage=rootimage at entry=0x0, image=image at entry=0x0, info=info at entry=0x7fff8b7388e0,
>> ignorecase=ignorecase at entry=0, type_resolve=type_resolve at entry=0x7fff8b7388d4)
>> at reflection.c:7661
>> #8  0x00000000005bcb00 in mono_reflection_get_type (image=image at entry=0x0,
>> info=info at entry=0x7fff8b7388e0, ignorecase=ignorecase at entry=0,
>> type_resolve=type_resolve at entry=0x7fff8b7388d4) at reflection.c:7613
>> #9  0x000000000053456d in type_from_name (ignoreCase=<optimized out>,
>> str=0x1ef44f0 "System.Nullable`1[[System.Int32, mscorlibBAD]]") at
>> icall.c:1286
>> #10 ves_icall_type_from_name (name=0x7f28ae7981b0,
>> throwOnError=<optimized out>, ignoreCase=<optimized out>) at icall.c:1322
>>
>>
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20150528/09564ce5/attachment-0001.html>


More information about the Mono-devel-list mailing list