Bug 18963 - SIGABRT when creating a struct in csharp (REPL)
Summary: SIGABRT when creating a struct in csharp (REPL)
Alias: None
Product: Runtime
Classification: Mono
Component: General (show other bugs)
Version: 3.2.x
Hardware: PC Linux
: --- normal
Target Milestone: ---
Assignee: Bugzilla
Depends on:
Reported: 2014-04-11 17:39 UTC by Craig Minihan
Modified: 2014-07-30 11:16 UTC (History)
4 users (show)

See Also:
Tags: repl csharp sigabrt
Is this bug a regression?: ---
Last known good build:


Description Craig Minihan 2014-04-11 17:39:02 UTC
Creating a instance of a structure using new causes a SIGABRT.

The following results in a core dump in 'csharp':

csharp> public class X {};
csharp> var x = new X();
csharp> public struct Y {};
csharp> var y = new Y();
* Assertion at method-to-ir.c:10266, condition `addr' not met


  at <unknown> <0xffffffff>
  at Mono.CSharp.Evaluator.Evaluate (string,object&,bool&) <0x000c1>
  at Mono.CSharpShell.Evaluate (string) <0x00053>
  at Mono.CSharpShell.ReadEvalPrintLoopWith (Mono.CSharpShell/ReadLiner) <0x000a3>
  at Mono.CSharpShell.ReadEvalPrintLoop () <0x001ff>
  at Mono.CSharpShell.Run (string[]) <0x0004b>
  at Mono.Driver.Main (string[]) <0x00580>
  at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

	/usr/local/bin/mono() [0x4a2a35]
	/lib64/libpthread.so.0() [0x37e060f500]
	/lib64/libc.so.6(gsignal+0x35) [0x37dfe328a5]
	/lib64/libc.so.6(abort+0x175) [0x37dfe34085]
	/usr/local/bin/mono() [0x62d73d]
	/usr/local/bin/mono() [0x62d7e7]
	/usr/local/bin/mono() [0x45d363]
	/usr/local/bin/mono() [0x41aeff]
	/usr/local/bin/mono() [0x41cb73]
	/usr/local/bin/mono() [0x41d67b]
	/usr/local/bin/mono() [0x4a7e04]

Debug info from gdb:

Mono support loaded.
[New LWP 28207]
[Thread debugging using libthread_db enabled]
0x00000037e060f09d in waitpid () from /lib64/libpthread.so.0
  2 Thread 0x7f1f636af700 (LWP 28207)  0x00000037e060d720 in sem_wait () from /lib64/libpthread.so.0
* 1 Thread 0x7f1f6b575780 (LWP 28206)  0x00000037e060f09d in waitpid () from /lib64/libpthread.so.0

Thread 2 (Thread 0x7f1f636af700 (LWP 28207)):
#0  0x00000037e060d720 in sem_wait () from /lib64/libpthread.so.0
#1  0x0000000000624268 in mono_sem_wait (sem=0x96bae0, alertable=1) at mono-semaphore.c:119
#2  0x00000000005a1d95 in finalizer_thread (unused=<value optimized out>) at gc.c:1073
#3  0x000000000057fd87 in start_wrapper_internal (data=0x21534e0) at threads.c:643
#4  start_wrapper (data=0x21534e0) at threads.c:688
#5  0x0000000000618153 in thread_start_routine (args=0x21001a8) at wthreads.c:294
#6  0x00000000006293d0 in inner_start_thread (arg=0x2153810) at mono-threads-posix.c:49
#7  0x00000037e0607851 in start_thread () from /lib64/libpthread.so.0
#8  0x00000037dfee890d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f1f6b575780 (LWP 28206)):
#0  0x00000037e060f09d in waitpid () from /lib64/libpthread.so.0
#1  0x00000000004a2ac8 in mono_handle_native_sigsegv (signal=<value optimized out>, ctx=<value optimized out>) at mini-exceptions.c:2299
#2  <signal handler called>
#3  0x00000037dfe328a5 in raise () from /lib64/libc.so.6
#4  0x00000037dfe34085 in abort () from /lib64/libc.so.6
#5  0x000000000062d73d in monoeg_g_logv (log_domain=<value optimized out>, log_level=G_LOG_LEVEL_ERROR, format=<value optimized out>, args=<value optimized out>) at goutput.c:175
#6  0x000000000062d7e7 in monoeg_assertion_message (format=<value optimized out>) at goutput.c:195
#7  0x000000000045d363 in mono_method_to_ir (cfg=<value optimized out>, method="<InteractiveExpressionClass>:Host ()", start_bblock=0x2935140, end_bblock=0x2935268, return_var=0x0, dont_inline=0x2937500, inline_args=0x0, inline_offset=0, is_virtual_call=0) at method-to-ir.c:10266
#8  0x000000000041aeff in mini_method_compile (method="<InteractiveExpressionClass>:Host ()", opts=370239999, domain=0x210ce50, flags=<value optimized out>, parts=0) at mini.c:5193
#9  0x000000000041cb73 in mono_jit_compile_method_inner (method="<InteractiveExpressionClass>:Host ()", opt=370239999, ex=0x7fff6bdea158) at mini.c:5940
#10 mono_jit_compile_method_with_opt (method="<InteractiveExpressionClass>:Host ()", opt=370239999, ex=0x7fff6bdea158) at mini.c:6211
#11 0x000000000041d67b in mono_jit_compile_method (method="<InteractiveExpressionClass>:Host ()") at mini.c:6248
#12 0x00000000004a7e04 in mono_delegate_trampoline (regs=<value optimized out>, code=<value optimized out>, tramp_data=<value optimized out>, tramp=<value optimized out>) at mini-trampolines.c:1064
#13 0x0000000041cf7206 in ?? ()
#14 0x00007f1f65397118 in ?? ()
#15 0x00007f1f65018b70 in ?? ()
#16 0x00007f1f65012800 in ?? ()
#17 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.

Aborted (core dumped)
Comment 1 Craig Minihan 2014-04-11 17:44:50 UTC
If Y has members I don't see the assertion.
Comment 2 Miguel de Icaza [MSFT] 2014-07-27 22:04:22 UTC
I do not see this with Mono 3.6.1.

Please try again.
Comment 3 Craig Minihan 2014-07-30 11:16:26 UTC
Yup, looks good to me.

Note You need to log in before you can comment on or make changes to this bug.