<div dir="ltr">There's probably a bug in there on mono, someone probably need to look and fix it.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 8, 2013 at 6:53 PM, Charles Randall <span dir="ltr"><<a href="mailto:Charles.Randall@nirvanix.com" target="_blank">Charles.Randall@nirvanix.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Mono developers,<br>
<br>
While trying to track down a mono internal problem related to signals and garbage collection, I've been doing some testing with the latest 3.2.1 release.<br>
<br>
In an attempt to find a test case that's most interesting to this team, I'm running OpenSuse 12.3 and repeatedly unpacking 3.2.1, running "configure", "make", and "make check". I let this run for ~24 hours which resulted in 58 builds/checks. Every one failed one test or another in "make check". This is in stark contrast to the status reported by monkey wrench for "mono-dist-3.2.1-release" on OpenSuse (all green).<br>

<br>
I'm new to OpenSuse, but I just did a fresh install and "zypper -n in -t pattern devel_C_C++" to get a development environment. Other than that, I'm just running the Makefile appended below over and over again.<br>

<br>
My system is,<br>
<br>
# cat /etc/SuSE-release<br>
openSUSE 12.3 (x86_64)<br>
VERSION = 12.3<br>
CODENAME = Dartmouth<br>
# uname -a<br>
Linux <a href="http://linux-mono.nirvanix.com" target="_blank">linux-mono.nirvanix.com</a> 3.7.10-1.1-desktop #1 SMP PREEMPT Thu Feb 28 15:06:29 UTC 2013 (82d3f21) x86_64 x86_64 x86_64 GNU/Linux<br>
<br>
The mono I end up with is,<br>
<br>
# mono --version<br>
Mono JIT compiler version 3.2.1 (tarball Tue Aug  6 14:43:27 MDT 2013) Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. <a href="http://www.mono-project.com" target="_blank">www.mono-project.com</a><br>

        TLS:           __thread<br>
        SIGSEGV:       altstack<br>
        Notifications: epoll<br>
        Architecture:  amd64<br>
        Disabled:      none<br>
        Misc:          softdebug<br>
        LLVM:          supported, not enabled.<br>
        GC:            sgen<br>
<br>
Here's a count of the failures from those runs,<br>
<br>
     25 bug-10127.exe<br>
     13 gsharing-valuetype-layout.exe<br>
      4 sgen-weakref-stress.exe|ms-par<br>
      3 sgen-weakref-stress.exe|ms-split<br>
      3 sgen-weakref-stress.exe|ms-conc<br>
      2 sgen-weakref-stress.exe|plain<br>
      2 delegate2.exe<br>
      1 sgen-weakref-stress.exe|ms-split-95<br>
      1 sgen-weakref-stress.exe|ms-conc-split<br>
      1 sgen-bridge.exe|ms-split<br>
      1 appdomain-unload.exe<br>
<br>
Note that the total number of test failures is greater than the 58 iterations because sometimes more than one test failed per iteration. I didn't dig into the failures, but note that bug-10127.exe fails on 43% of the runs (25/58).<br>

<br>
I'm most interested in assertion failures in the bug-10127.exe failures as they look similar to my application failures on another platform. Specifically, here's a manual recompile and run of that test (it doesn't fail every time),<br>

<br>
# mcs bug-10127.cs<br>
# mono bug-10127.exe<br>
Starting cache testers<br>
* Assertion at sgen-os-posix.c:60, condition `info->doing_handshake' not met ...<br>
=================================================================<br>
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.<br>
=================================================================<br>
<br>
Here are a few examples of the bug-10127.exe failure stack traces from manual runs as described above,<br>
<br>
<a href="http://sprunge.us/iHFX" target="_blank">http://sprunge.us/iHFX</a><br>
<a href="http://sprunge.us/cOEU" target="_blank">http://sprunge.us/cOEU</a><br>
<a href="http://sprunge.us/VKRg" target="_blank">http://sprunge.us/VKRg</a><br>
<br>
For completeness, the only thing that I can think of that may be different about my very simple configuration is that my OpenSuse system is a virtual machine (4 core, 4 GB RAM) running on VMware ESXi. I suspect that this is subtly altering the timing of execution and exposing latent bugs.<br>

<br>
These appears to be related,<br>
<br>
<a href="https://github.com/mono/mono/pull/720" target="_blank">https://github.com/mono/mono/pull/720</a><br>
<br>
<a href="http://stackoverflow.com/questions/17937222/mono-3-2-0-process-crashes-on-sgen-os-posix-info-handshake-not-met" target="_blank">http://stackoverflow.com/questions/17937222/mono-3-2-0-process-crashes-on-sgen-os-posix-info-handshake-not-met</a><br>

<br>
>From what I've described, am I doing anything wrong? Anyone else seeing something similar?<br>
<br>
-Charles<br>
<br>
--- snip ---<br>
MONO_VER=3.2.1<br>
MONO_DIST=mono-${MONO_VER}.tar.bz2<br>
MONO_DIR=mono-${MONO_VER}<br>
<br>
all: check.done<br>
<br>
extract.done:<br>
        @echo ------------------------------------------------------------<br>
        @echo EXTRACT<br>
        @echo ------------------------------------------------------------<br>
        tar jxvf ${MONO_DIST} 2>&1<br>
        touch extract.done<br>
<br>
configure.done: extract.done<br>
        @echo ------------------------------------------------------------<br>
        @echo CONFIGURE<br>
        @echo ------------------------------------------------------------<br>
        (cd ${MONO_DIR} && ./configure --prefix=/tmp/mono) 2>&1<br>
        touch configure.done<br>
<br>
build.done: configure.done<br>
        @echo ------------------------------------------------------------<br>
        @echo BUILD<br>
        @echo ------------------------------------------------------------<br>
        make -C ${MONO_DIR} -j 4 2>&1<br>
        touch build.done<br>
<br>
check.done: build.done<br>
        @echo ------------------------------------------------------------<br>
        @echo CHECK<br>
        @echo ------------------------------------------------------------<br>
        make -C ${MONO_DIR} check 2>&1<br>
        touch check.done<br>
<br>
.PHONY: clean<br>
clean:<br>
        @echo ------------------------------------------------------------<br>
        @echo CLEAN<br>
        @echo ------------------------------------------------------------<br>
        -rm -f *.log *.done *~<br>
        -rm -rf ${MONO_DIR}<br>
<br>
<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</blockquote></div><br></div>