mono.git
7 years agoMerge pull request #3144 from Unity-Technologies/fix-recursive-property-call
Martin Baulig [Fri, 10 Jun 2016 18:23:35 +0000 (20:23 +0200)]
Merge pull request #3144 from Unity-Technologies/fix-recursive-property-call

Fix recursive property call in MonoSslStreamImpl

7 years agoMerge pull request #3154 from lambdageek/fix-initmessage-linker
Aleksey Kliger (λgeek) [Fri, 10 Jun 2016 15:54:29 +0000 (11:54 -0400)]
Merge pull request #3154 from lambdageek/fix-initmessage-linker

[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor

7 years ago[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor
Aleksey Kliger [Fri, 10 Jun 2016 15:21:29 +0000 (11:21 -0400)]
[linker] Add MonoMethodMessage::InitMessage to mscorlib descriptor

That method gets called from the runtime, it shouldn't be linked out.

7 years ago[tests] Bump timeout in sleep.exe
Alexander Köplinger [Fri, 10 Jun 2016 14:32:21 +0000 (16:32 +0200)]
[tests] Bump timeout in sleep.exe

We're seeing it randomly fail on Wrench with durations of 1550 - 1800ms.
Talked to Zoltan, this might be normal so bumping the timeout to reduce the failure rate.

7 years ago[System] Read all values of unknown/uncommon headers with multiple entries. Fixes...
Marek Safar [Fri, 10 Jun 2016 10:58:07 +0000 (12:58 +0200)]
[System] Read all values of unknown/uncommon headers with multiple entries. Fixes #41552

7 years ago[runtime] Ensure uniqueness of icall wrappers (#3143)
Alexander Kyte [Fri, 10 Jun 2016 09:05:51 +0000 (05:05 -0400)]
[runtime] Ensure uniqueness of icall wrappers (#3143)

The llvmonly backend will use `mono_aot_init_gshared_method_this`
and other initializers to initialize methods. These will transitively call
`mono_icall_get_wrapper_full` when icall wrappers are needed.

The init functions will set the
initialized flag after initialization. They set it in a non-atomic manner. This means that
in a multithreaded environment, it's possible to call the functions
twice.

When `mono_icall_get_wrapper_full` is called without this patch, the
pointers to wrappers it gets from `mono_marshal_get_icall_wrapper`
will not have the same addresses. They will hash to the same value
though.

This will lead to them not being found or inserted by
`find_aot_method_in_amodule`.
The fact that we already have a value with this hash means that
the new wrapper doesn't get inserted. The fact that the pointers differ
mean that we don't say that we've found our desired wrapper.

This leads to an assertion in `mono_icall_get_wrapper_full`
crashing the runtime.

Since we intend to have the semantics of a wrapper for each icall,
this change uses a cache to ensure uniqueness. The observed crashes
do not happen when this change is applied.

7 years agoMerge pull request #3151 from akoeplinger/fix-islocal
Marek Safar [Fri, 10 Jun 2016 08:13:59 +0000 (10:13 +0200)]
Merge pull request #3151 from akoeplinger/fix-islocal

[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing

7 years ago[runtime] Move 'pedump' to tools/pedump, build tools by default. (#3133)
Zoltan Varga [Fri, 10 Jun 2016 06:52:03 +0000 (02:52 -0400)]
[runtime] Move 'pedump' to tools/pedump, build tools by default. (#3133)

* [runtime] Move 'pedump' to tools/pedump, build tools by default.

* Add missing file.

* [runtime] Mark mono_opcodes[] with MONO_API.

* [runtime] Build monograph when sgen is supported instead of boehm.

* [runtime] Link monograph against the static runtime libraries.

* [runtime] Use the same SUBDIRS/DIST_SUBDIRS for the CROSS_COMPILING case.

7 years agoMerge pull request #3140 from esdrubal/syscall_details
Alexander Köplinger [Thu, 9 Jun 2016 23:48:19 +0000 (01:48 +0200)]
Merge pull request #3140 from esdrubal/syscall_details

[runtime] Fixed interruptible wapi_sendfile part2.

7 years ago[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing
Alexander Köplinger [Thu, 9 Jun 2016 23:37:45 +0000 (01:37 +0200)]
[System] Fix HttpListenerRequestTest.HttpRequestIsLocal intermittently failing

We're seeing the following exception on devices in CI:

```
[FAIL] HttpListenerRequestTest.HttpRequestIsLocal : System.Net.Sockets.SocketException : Could not resolve host 'XQA-AppleTV-1'
  at System.Net.Dns.Error_11001 (System.String hostName) [0x00000] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:292
  at System.Net.Dns.GetHostByName (System.String hostName) [0x00024] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:419
  at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) [0x00061] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:380
  at System.Net.Dns.GetHostAddresses (System.String hostNameOrAddress) [0x00065] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System/System.Net/Dns.cs:406
  at MonoTests.System.Net.HttpListenerRequestTest.HttpRequestIsLocal () [0x00006] in /Users/xamarinqa/QABot/data/lanes/2441/d8287824/source/xamarin-macios/external/mono/mcs/class/System/Test/System.Net/HttpListenerRequestTest.cs:197
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/data/lanes/1381/d8287824/source/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:309
```

From looking at the code, resolving the hostname to IP addresses via DNS fails so the test doesn't even run.
We don't care where the local IPs come from so we can use an alternative way of getting them - via querying the network interfaces.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=41671

PS: fixed a hardcoded port while I was touching the code

7 years agoMerge pull request #2921 from lewurm/lower-typechecks-later
monojenkins [Thu, 9 Jun 2016 23:05:15 +0000 (00:05 +0100)]
Merge pull request #2921 from lewurm/lower-typechecks-later

[mini] lower typechecks later

lower typecheck instructions later in the compilation, so we've a chance to do high-level optimization after `method-to-ir`

7 years agoMerge pull request #3121 from lambdageek/dev/managed-init_message
monojenkins [Thu, 9 Jun 2016 22:15:10 +0000 (23:15 +0100)]
Merge pull request #3121 from lambdageek/dev/managed-init_message

Rewriite `MonoMethodMessage::InitMessage` in managed code

Change icall
`System.Runtime.Remoting.Messaging/MonoMethodMessage::InitMessage` to
managed code.

Also update `mono_message_init()` to invoke `InitMessage`.

7 years ago[sgen] Inform on configure and --version when the concurrent GC is the default.
Rodrigo Kumpera [Thu, 9 Jun 2016 20:39:11 +0000 (13:39 -0700)]
[sgen] Inform on configure and --version when the concurrent GC is the default.

7 years ago[mini] execute decompose_typechecks only if there's a typecheck operation
Bernhard Urban [Mon, 6 Jun 2016 18:34:23 +0000 (11:34 -0700)]
[mini] execute decompose_typechecks only if there's a typecheck operation

7 years ago[mini] comment about empty BBs for graph visualization
Bernhard Urban [Mon, 6 Jun 2016 17:57:05 +0000 (10:57 -0700)]
[mini] comment about empty BBs for graph visualization

7 years ago[mini] do decomposition of typechecks later in the compilation pipeline
Bernhard Urban [Thu, 2 Jun 2016 22:23:49 +0000 (15:23 -0700)]
[mini] do decomposition of typechecks later in the compilation pipeline

7 years ago[method-to-ir] get rid of additional reg introduced for `isinst` and `castclass`
Bernhard Urban [Thu, 2 Jun 2016 22:23:45 +0000 (15:23 -0700)]
[method-to-ir] get rid of additional reg introduced for `isinst` and `castclass`

7 years ago[mini] add time tracking for decompose_typechecks pass
Bernhard Urban [Thu, 2 Jun 2016 22:23:42 +0000 (15:23 -0700)]
[mini] add time tracking for decompose_typechecks pass

7 years ago[mini] decompose `isinst` and `castclass` in a later pass
Bernhard Urban [Thu, 2 Jun 2016 22:23:39 +0000 (15:23 -0700)]
[mini] decompose `isinst` and `castclass` in a later pass

7 years ago[cfgdump] insert NOP in empty basic blocks in order to not confuse graph dumper
Bernhard Urban [Thu, 2 Jun 2016 22:23:36 +0000 (15:23 -0700)]
[cfgdump] insert NOP in empty basic blocks in order to not confuse graph dumper

7 years ago[debug] print class name for OP_{isinst,castclass}
Bernhard Urban [Thu, 2 Jun 2016 22:23:29 +0000 (15:23 -0700)]
[debug] print class name for OP_{isinst,castclass}

7 years ago[mini] introduce OP_{isinst,castclass}
Bernhard Urban [Thu, 2 Jun 2016 22:23:26 +0000 (15:23 -0700)]
[mini] introduce OP_{isinst,castclass}

7 years agoMerge pull request #3136 from BrzVlad/fix-stw-stopped
Vlad Brezae [Thu, 9 Jun 2016 20:13:56 +0000 (23:13 +0300)]
Merge pull request #3136 from BrzVlad/fix-stw-stopped

[sgen] Don't try to stop a stopped world

7 years ago[runtime] Switch mono_message_init to invoke managed
Aleksey Kliger [Mon, 6 Jun 2016 21:07:43 +0000 (17:07 -0400)]
[runtime] Switch mono_message_init to invoke managed

Invoke the managed
System.Runtime.Remoting.Messaging.MonoMethodMessage::InitMessage method.

7 years ago[corlib] Implement MonoMethodMessage::InitMessage in managed
Aleksey Kliger [Mon, 6 Jun 2016 20:27:53 +0000 (16:27 -0400)]
[corlib] Implement MonoMethodMessage::InitMessage in managed

Change icall
System.Runtime.Remoting.Messaging/MonoMethodMessage::InitMessage to
managed code.

7 years agoMerge pull request #3127 from alexrp/arm32-on-arm64
Alex Rønne Petersen [Thu, 9 Jun 2016 18:29:31 +0000 (20:29 +0200)]
Merge pull request #3127 from alexrp/arm32-on-arm64

[arm] Correctly detect hardware features when running as arm32 on arm64 hardware.

7 years agoMerge pull request #3137 from BrzVlad/fix-sgen-critical-region
Bernhard Urban [Thu, 9 Jun 2016 17:31:49 +0000 (10:31 -0700)]
Merge pull request #3137 from BrzVlad/fix-sgen-critical-region

[sgen] Exit the critical section also on the slowpath of managed allocators

7 years agoMerge pull request #3142 from henricm/fix-for-win-mono_string_to_utf8
monojenkins [Thu, 9 Jun 2016 16:55:12 +0000 (17:55 +0100)]
Merge pull request #3142 from henricm/fix-for-win-mono_string_to_utf8

Using mono_marshal_free n mono_string_builder_to_utf8

`mono_string_builder_to_utf16` is allocating using `mono_marshal_alloc` which, on windows, allocates memory using `CoTaskMemAlloc`. This buffer was then released in `mono_string_builder_to_utf8` using `g_free` which resulted in a crash since that's a different memory on windows. The fix in this PR makes sure `mono_marshal_free` is called instead which has the correct behaviour and results in a `CoTaskMemFree` on windows.

7 years ago[mcs] Add probing conversion for FormattableString. Fixes #41575
Marek Safar [Thu, 9 Jun 2016 15:54:32 +0000 (17:54 +0200)]
[mcs] Add probing conversion for FormattableString. Fixes #41575

7 years agoFix recursive property call in MonoSslStreamImpl
Mike Voorhees [Thu, 9 Jun 2016 14:38:44 +0000 (10:38 -0400)]
Fix recursive property call in MonoSslStreamImpl

7 years agoMerge pull request #3085 from lateralusX/jlorenss/win-x64-pinvoke-empty-struct
Johan Lorensson [Thu, 9 Jun 2016 13:49:33 +0000 (15:49 +0200)]
Merge pull request #3085 from lateralusX/jlorenss/win-x64-pinvoke-empty-struct

Fix for non GCC win x64 calling convention when passing empty structs over pinvoke.

7 years agoMaking sure mono_marshal_free is used instead of g_free in mono_string_builder_to_utf8
Henric Müller [Thu, 9 Jun 2016 13:21:56 +0000 (15:21 +0200)]
Making sure mono_marshal_free is used instead of g_free in mono_string_builder_to_utf8

7 years agoMerge pull request #3139 from akoeplinger/dns-test
monojenkins [Thu, 9 Jun 2016 13:35:12 +0000 (14:35 +0100)]
Merge pull request #3139 from akoeplinger/dns-test

[System] Make ServicePointTest.DnsRefreshTimeout test more reliable

We are still seeing quite rare failures of this test:

```
HostEntry should result in the same IPHostEntry object.
  Expected: same as <System.Net.IPHostEntry>
  But was:  <System.Net.IPHostEntry>

+++++++++++++++++++
STACK TRACE:
at MonoTests.System.Net.ServicePointTest.DnsRefreshTimeout () [0x00045] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System/Test/System.Net/ServicePointTest.cs:228
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/corlib/System.Reflection/MonoMethod.cs:309
```

Since the test is only checking if expiring of the cached DNS lookup works, we don't really need to use an external domain name for this as "localhost" works just fine as well and typically doesn't trigger a DNS query which makes the test more reliable against network issues.

@monojenkins merge

7 years ago[mcs] Recognize indexer with accessors using different names. Fixes #41602
Marek Safar [Thu, 9 Jun 2016 12:58:49 +0000 (14:58 +0200)]
[mcs] Recognize indexer with accessors using different names. Fixes #41602

7 years ago[runtime] Fixed interruptible wapi_sendfile part2.
Marcos Henrich [Thu, 9 Jun 2016 11:42:15 +0000 (12:42 +0100)]
[runtime] Fixed interruptible wapi_sendfile part2.

Fixed issue where underlying system without HAVE_SENDFILE
would not interrupt while sending a file even when the socket was
set as a non blocking one.

7 years ago[System] Make ServicePointTest.DnsRefreshTimeout test more reliable
Alexander Köplinger [Thu, 9 Jun 2016 11:24:13 +0000 (13:24 +0200)]
[System] Make ServicePointTest.DnsRefreshTimeout test more reliable

We are still seeing quite rare failures of this test:

```
HostEntry should result in the same IPHostEntry object.
  Expected: same as <System.Net.IPHostEntry>
  But was:  <System.Net.IPHostEntry>

+++++++++++++++++++
STACK TRACE:
at MonoTests.System.Net.ServicePointTest.DnsRefreshTimeout () [0x00045] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/System/Test/System.Net/ServicePointTest.cs:228
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /Users/builder/jenkins/workspace/test-mono-mainline/label/osx-i386/mcs/class/corlib/System.Reflection/MonoMethod.cs:309
```

Since the test is only checking if expiring of the cached DNS lookup works, we don't really need to use an external domain name for this
as "localhost" works just fine as well and typically doesn't trigger a DNS query which makes the test more reliable against network issues.

7 years agoMerge pull request #3138 from akoeplinger/fix-win
Alexander Köplinger [Thu, 9 Jun 2016 09:52:05 +0000 (11:52 +0200)]
Merge pull request #3138 from akoeplinger/fix-win

[metadata] Fix Windows gcc build break

7 years ago[mcs] Bump ikvm to fix assembly unification rules
Marek Safar [Thu, 9 Jun 2016 08:30:40 +0000 (10:30 +0200)]
[mcs] Bump ikvm to fix assembly unification rules

7 years ago[arm] Correctly detect hardware features when running as arm32 on arm64 hardware.
Alex Rønne Petersen [Wed, 8 Jun 2016 14:21:13 +0000 (16:21 +0200)]
[arm] Correctly detect hardware features when running as arm32 on arm64 hardware.

7 years ago[metadata] Fix Windows gcc build break
Alexander Köplinger [Thu, 9 Jun 2016 00:53:26 +0000 (02:53 +0200)]
[metadata] Fix Windows gcc build break

After 680fe21e6952ba6dc73ad89095b34ebb3a9bfc86 it failed with:

```
coree.c: In function '_CorExeMain':
coree.c:200:2: error: implicit declaration of function 'mono_runtime_run_main_checked' [-Werror=implicit-function-declaration]
  mono_runtime_run_main_checked (method, argc, argv, &error);
  ^
[...]
Makefile:2137: recipe for target 'libmonoruntime_la-coree.lo' failed
make[3]: *** [libmonoruntime_la-coree.lo] Error 1
```

7 years ago[sgen] Scatterplot option for gcpauseviz.
Mark Probst [Wed, 8 Jun 2016 23:01:51 +0000 (16:01 -0700)]
[sgen] Scatterplot option for gcpauseviz.

7 years ago[sgen] Exit the critical section also on the slowpath of managed allocators
Vlad Brezae [Wed, 8 Jun 2016 21:57:50 +0000 (00:57 +0300)]
[sgen] Exit the critical section also on the slowpath of managed allocators

We were not exiting the critical section on this code path. This was leading to hangs at stw since the native code would take locks when compiling the code.

7 years ago[sgen] Don't try to stop a stopped world
Vlad Brezae [Wed, 8 Jun 2016 22:20:53 +0000 (01:20 +0300)]
[sgen] Don't try to stop a stopped world

On domain unload we were calling sgen_perform_collection even though we had a stopped world, when finishing a running concurrent collection.

7 years agoMerge pull request #3135 from kumpera/enable_conc_gc_on_mainline_archs
Rodrigo Kumpera [Wed, 8 Jun 2016 22:33:27 +0000 (15:33 -0700)]
Merge pull request #3135 from kumpera/enable_conc_gc_on_mainline_archs

[jenkins] Make the concurrent GC the default on mainline archtectures.

7 years ago[jenkins] Make the concurrent GC the default on mainline archtectures.
Rodrigo Kumpera [Wed, 8 Jun 2016 22:12:34 +0000 (15:12 -0700)]
[jenkins] Make the concurrent GC the default on mainline archtectures.

7 years agoMerge pull request #3090 from alexanderkyte/remove_deprecated_assertions
Alexander Köplinger [Wed, 8 Jun 2016 21:04:00 +0000 (23:04 +0200)]
Merge pull request #3090 from alexanderkyte/remove_deprecated_assertions

[mobile_static] Remove deprecated assertions

7 years ago[corlib] Fix tests for watchOS. (#3131)
Rolf Bjarne Kvinge [Wed, 8 Jun 2016 20:46:11 +0000 (22:46 +0200)]
[corlib] Fix tests for watchOS. (#3131)

7 years ago[llvm] Enable support for the atomic store intrinsics when running with llvmonly.
Zoltan Varga [Wed, 8 Jun 2016 18:58:07 +0000 (14:58 -0400)]
[llvm] Enable support for the atomic store intrinsics when running with llvmonly.

7 years agoMerge pull request #3117 from alexrp/master
Alex Rønne Petersen [Wed, 8 Jun 2016 16:04:48 +0000 (18:04 +0200)]
Merge pull request #3117 from alexrp/master

Fix a few socket test failures on Android

7 years agoMerge pull request #3093 from lambdageek/dev/monoerror-exec
Aleksey Kliger (λgeek) [Wed, 8 Jun 2016 14:35:46 +0000 (10:35 -0400)]
Merge pull request #3093 from lambdageek/dev/monoerror-exec

[runtime] Mark mono_runtime_{run,exec}_main external only.

7 years ago[sockets] Correctly report that Linux supports double binding for UDP, even on old...
Alex Rønne Petersen [Wed, 8 Jun 2016 13:27:47 +0000 (15:27 +0200)]
[sockets] Correctly report that Linux supports double binding for UDP, even on old kernels.

7 years ago[mcs] Improve betterness changes in b12385e9fdedd5b146d00a56687c886a647e1865
Marek Safar [Wed, 8 Jun 2016 13:25:52 +0000 (15:25 +0200)]
[mcs] Improve betterness changes in b12385e9fdedd5b146d00a56687c886a647e1865

7 years ago[System] Fixes compiler warning
Marek Safar [Tue, 7 Jun 2016 21:28:28 +0000 (23:28 +0200)]
[System] Fixes compiler warning

7 years ago[System] Make SocketAsyncTest.SendAsync give more helpful failures.
Alex Rønne Petersen [Tue, 7 Jun 2016 18:24:14 +0000 (20:24 +0200)]
[System] Make SocketAsyncTest.SendAsync give more helpful failures.

7 years ago[build] Add llvm folder to SUBDIRS/DIST_SUBDIRS
Alexander Köplinger [Wed, 8 Jun 2016 12:05:50 +0000 (14:05 +0200)]
[build] Add llvm folder to SUBDIRS/DIST_SUBDIRS

This ensures all the right files are packaged in the tarball.

7 years agoMerge pull request #3122 from akoeplinger/fix-41530
Alexander Köplinger [Wed, 8 Jun 2016 10:47:41 +0000 (12:47 +0200)]
Merge pull request #3122 from akoeplinger/fix-41530

[System] Make TimerTest.EnabledInElapsed more reliable

7 years agoMerge pull request #3120 from esdrubal/syscall_details
Marcos Henrich [Wed, 8 Jun 2016 08:03:20 +0000 (09:03 +0100)]
Merge pull request #3120 from esdrubal/syscall_details

Fixes SendAsyncFile flaky failures

7 years ago[runtime] Only print out the value of MONO_EXTRA_CONFIGURE_FLAGS when it is set.
Zoltan Varga [Wed, 8 Jun 2016 07:05:16 +0000 (03:05 -0400)]
[runtime] Only print out the value of MONO_EXTRA_CONFIGURE_FLAGS when it is set.

7 years agoMerge pull request #3118 from kumpera/fix_getname
Rodrigo Kumpera [Wed, 8 Jun 2016 00:22:55 +0000 (17:22 -0700)]
Merge pull request #3118 from kumpera/fix_getname

[corlib] Handle user Assembly subclass and Assembly::GetName.

7 years ago[System] Make TimerTest.EnabledInElapsed more reliable
Alexander Köplinger [Tue, 7 Jun 2016 15:20:09 +0000 (17:20 +0200)]
[System] Make TimerTest.EnabledInElapsed more reliable

We were seeing intermittent failures on devices like:

```
[FAIL] TimerTest.EnabledInElapsed :   #1 loss of events
  Expected: True
  But was:  False

  at MonoTests.System.Timers.TimerTest.EnabledInElapsed () <0x33b168 + 0x0014f> in <filename unknown>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object , BindingFlags , System.Reflection.Binder , System.Object[] , System.Globalization.CultureInfo ) <0x66d400 + 0x000b7> in <filename unknown>:0
```

Since OS scheduling and GCs can influence the exact timing of the timer intervals sleeping for 200ms is likely just too short.
Instead of bumping the timeout, I decided to rewrite the test to not rely on Thread.Sleep ().
I also added another test which verifies setting AutoResetEvent=false stops the timer event from firing after the first one,
which was implicitly tested before by the other test.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=41530

7 years agoMerge pull request #3114 from alexanderkyte/mono_conf_gc
Rodrigo Kumpera [Tue, 7 Jun 2016 22:44:03 +0000 (15:44 -0700)]
Merge pull request #3114 from alexanderkyte/mono_conf_gc

[runtime] Add configuration for the default sgen gc mode

7 years agoMerge pull request #3112 from akoeplinger/test-runner-nofile
Alexander Köplinger [Tue, 7 Jun 2016 22:18:39 +0000 (00:18 +0200)]
Merge pull request #3112 from akoeplinger/test-runner-nofile

[test-runner] Write stdout/stderr into StringBuilder instead of an intermediate file

7 years agoMore updates
Miguel de Icaza [Tue, 7 Jun 2016 21:53:36 +0000 (17:53 -0400)]
More updates

7 years ago[corlib] Handle user Assembly subclass and Assembly::GetName.
Rodrigo Kumpera [Tue, 7 Jun 2016 06:28:31 +0000 (23:28 -0700)]
[corlib] Handle user Assembly subclass and Assembly::GetName.

Remove UnprotectedGetName and replace with overriding of GetName.

dotnet throws NIE if you subclass Assembly and call GetName on it.
We hard crashed.

7 years agoFix make dist
Alexander Köplinger [Tue, 7 Jun 2016 20:43:16 +0000 (22:43 +0200)]
Fix make dist

It got broken when the versions.py file was moved around in d110f526706b7c4880ca916e2dfbab93138871cd.
Also add the new locations to EXTRA_DIST so they get distributed too.

7 years agoMerge pull request #3119 from kumpera/fix-getname-and-shadowcopy
Rodrigo Kumpera [Tue, 7 Jun 2016 19:51:27 +0000 (12:51 -0700)]
Merge pull request #3119 from kumpera/fix-getname-and-shadowcopy

[corlib] Take shadow copying when computing CodeBase in Assembly::GetName.

7 years agoMerge pull request #3082 from alexanderkyte/no_alloc_klass_error
Aleksey Kliger (λgeek) [Tue, 7 Jun 2016 19:23:17 +0000 (15:23 -0400)]
Merge pull request #3082 from alexanderkyte/no_alloc_klass_error

[runtime] Set klass-error-based MonoError state without allocating

7 years ago[mobile_status] Fix nullable type ambiguity that nunit-lite complains about
Alexander Kyte [Thu, 2 Jun 2016 23:27:57 +0000 (19:27 -0400)]
[mobile_status] Fix nullable type ambiguity that nunit-lite complains about

7 years ago[mobile_static] Remove use of CollectionAssert, missing in nunit-lite
Alexander Kyte [Mon, 23 May 2016 22:42:57 +0000 (18:42 -0400)]
[mobile_static] Remove use of CollectionAssert, missing in nunit-lite

7 years ago[mobile_static] Remove uses of deprecated Assertion.cs nunit helper.
Alexander Kyte [Thu, 2 Jun 2016 01:15:27 +0000 (21:15 -0400)]
[mobile_static] Remove uses of deprecated Assertion.cs nunit helper.

7 years agoMerge pull request #3110 from BrzVlad/fix-complex-conc-scan
Rodrigo Kumpera [Tue, 7 Jun 2016 18:38:27 +0000 (11:38 -0700)]
Merge pull request #3110 from BrzVlad/fix-complex-conc-scan

[sgen] Fix concurrent scan of complex objects

7 years ago[Socket] Check for SocketOptionLevel.Socket before checking for SocketOptionName...
Alex Rønne Petersen [Tue, 7 Jun 2016 03:01:25 +0000 (05:01 +0200)]
[Socket] Check for SocketOptionLevel.Socket before checking for SocketOptionName.ReuseAddress.

Without doing this, the check would consider a valid option name like
IpTimeToLive to be the same as ReuseAddress, as they share the same enum
value.

Fixes SocketTest.TtlChange and SocketTest.UdpMulticasTimeToLive on Android and
other platforms that don't support ReuseAddress.

7 years agoMerge pull request #3124 from mono/revert-2734-master
Alexander Köplinger [Tue, 7 Jun 2016 16:45:29 +0000 (18:45 +0200)]
Merge pull request #3124 from mono/revert-2734-master

Revert "Enhance log tracing"

7 years agoRevert "Enhance log tracing"
Alexander Köplinger [Tue, 7 Jun 2016 16:45:09 +0000 (18:45 +0200)]
Revert "Enhance log tracing"

7 years ago[runtime] Add environment variable to pass additional configure options
Alexander Kyte [Tue, 7 Jun 2016 16:29:39 +0000 (12:29 -0400)]
[runtime] Add environment variable to pass additional configure options

7 years ago[runtime] Add new configure option for default sgen GC mode
Alexander Kyte [Tue, 7 Jun 2016 16:29:23 +0000 (12:29 -0400)]
[runtime] Add new configure option for default sgen GC mode

7 years ago[amd64] Fix an off-by-one in the dyn call code.
Zoltan Varga [Tue, 7 Jun 2016 16:16:59 +0000 (12:16 -0400)]
[amd64] Fix an off-by-one in the dyn call code.

7 years agoLlvm submodule (#3108)
Zoltan Varga [Tue, 7 Jun 2016 14:46:33 +0000 (10:46 -0400)]
Llvm submodule (#3108)

* Move the versions.mk infrastructure to scripts/submodules so it can be used elsewhere too.

* Add a conditional submodule for llvm.

* Fix commit messages emitted by the bump- targets.

* Use a anonymous git url for llvm.

7 years ago[runtime] Fixed interruptible wapi_sendfile.
Marcos Henrich [Tue, 7 Jun 2016 13:06:53 +0000 (14:06 +0100)]
[runtime] Fixed interruptible wapi_sendfile.

Before closing a socket we try to interrupt and wait for all socket
pending system calls to return. For that we set the socket as non
blocking which makes the system calls to return with EAGAIN\EWOULDBLOCK.

This issue was caught by System.Net.Sockets.SocketTest.SendAsyncFile
that was intermittently failing, we were only able to reproduce it while
running multiple test suites in parallel. We now can say that it only failed when
the the socket was closed and the sendfile was waiting for the OS to
allocate enough resources to send the file.

This was fixed by changing wapi_sendfile to return on EAGAIN.

7 years ago[System] Improved "Could not abort" exception.
Marcos Henrich [Tue, 7 Jun 2016 09:38:29 +0000 (10:38 +0100)]
[System] Improved "Could not abort" exception.

Stack traces of blocked threads are now displayed on the exception.

The threads stacktraces are only stored when MONO_TESTS_IN_PROGRESS env
var is set to yes.

7 years ago[runtime][mobile_static] Add flag for rgctx_fetch_trampolines and use it (#3088)
Alexander Kyte [Tue, 7 Jun 2016 11:44:40 +0000 (07:44 -0400)]
[runtime][mobile_static] Add flag for rgctx_fetch_trampolines and use it (#3088)

* [runtime] Add commandline option for rgctx fetch trampolines.

* [mobile_static] Increase the number of trampolines

7 years agoSmaller adjustments based on PR feedback.
lateralusX [Tue, 7 Jun 2016 09:35:02 +0000 (11:35 +0200)]
Smaller adjustments based on PR feedback.

7 years ago[runtime] Call mono_class_init () for classes in mono_class_is_subclass_of (). Fixes...
Zoltan Varga [Tue, 7 Jun 2016 08:08:41 +0000 (04:08 -0400)]
[runtime] Call mono_class_init () for classes in mono_class_is_subclass_of (). Fixes #41466.

7 years ago[corlib] Take shadow copying when computing CodeBase in Assembly::GetName.
Rodrigo Kumpera [Tue, 7 Jun 2016 06:36:32 +0000 (23:36 -0700)]
[corlib] Take shadow copying when computing CodeBase in Assembly::GetName.

7 years agoMerge pull request #3116 from alexrp/master
Alex Rønne Petersen [Tue, 7 Jun 2016 01:35:36 +0000 (03:35 +0200)]
Merge pull request #3116 from alexrp/master

Some improvements to the profiler makefile

7 years ago[sgen] Make gcpauseviz histograms more meaningful.
Mark Probst [Mon, 6 Jun 2016 23:36:14 +0000 (16:36 -0700)]
[sgen] Make gcpauseviz histograms more meaningful.

There were too many bins, because the x axis was not logarithmic, and
there were no meaningful labels.

7 years ago[sgen] Fix gcpauseviz.
Mark Probst [Mon, 6 Jun 2016 23:17:58 +0000 (16:17 -0700)]
[sgen] Fix gcpauseviz.

It didn't detect starts of concurrent collections anymore because of how
the binary protocol outputs it.

7 years ago[profiler] Don't install the coverage suppression file if the profiler is disabled.
Alex Rønne Petersen [Mon, 6 Jun 2016 22:49:04 +0000 (00:49 +0200)]
[profiler] Don't install the coverage suppression file if the profiler is disabled.

7 years ago[profiler] Don't run the test suite when the profiler is disabled.
Alex Rønne Petersen [Mon, 6 Jun 2016 22:44:58 +0000 (00:44 +0200)]
[profiler] Don't run the test suite when the profiler is disabled.

Also clean up the makefile logic surrounding tests a bit.

7 years agoMerge pull request #3113 from akoeplinger/boehm-fixes
Alexander Köplinger [Mon, 6 Jun 2016 21:44:35 +0000 (23:44 +0200)]
Merge pull request #3113 from akoeplinger/boehm-fixes

[ci] Turn off Boehm on Windows x64 gcc build

7 years ago[offsets-tool] Generate offsets for SgenClientThreadInfo.
Zoltan Varga [Mon, 6 Jun 2016 20:48:02 +0000 (16:48 -0400)]
[offsets-tool] Generate offsets for SgenClientThreadInfo.

7 years ago[sgen] Fix define argument
Vlad Brezae [Mon, 6 Jun 2016 12:37:03 +0000 (15:37 +0300)]
[sgen] Fix define argument

The code worked by accident because the function in which the define was expanded had an argument with the name desc.

7 years ago[sgen] Fix race between complex descriptor allocation and complex object scanning
Vlad Brezae [Mon, 6 Jun 2016 12:19:12 +0000 (15:19 +0300)]
[sgen] Fix race between complex descriptor allocation and complex object scanning

When we allocate the complex descriptor for a new type we might have the concurrent marker scan objects. While the concurrent marker scans the bitmap for a complex object, which resides in the complex_descriptor array, another thread might allocate a new complex descriptor, thus reallocate the complex_descriptor array, which would lead to corruption of the bitmap used by the concurrent marker.

We reuse the SgenArrayList which never reallocates, using instead a list of exponentially increasing arrays.

7 years agoOnly define Boehm variables in configure.ac when it is enabled
Alexander Köplinger [Mon, 6 Jun 2016 19:18:45 +0000 (21:18 +0200)]
Only define Boehm variables in configure.ac when it is enabled

Fix the message that is printed in the configure summary at the end to contain only "sgen" when Boehm is disabled.

7 years ago[ci] Turn off Boehm on Windows x64 gcc build
Alexander Köplinger [Mon, 6 Jun 2016 19:07:07 +0000 (21:07 +0200)]
[ci] Turn off Boehm on Windows x64 gcc build

It was never supported there, turn it off to fix the build on Jenkins.

7 years ago[amd64] Fix a loop variable reuse in a58c2ef804779be70832c6b0e092fbca1edaebf1.
Zoltan Varga [Mon, 6 Jun 2016 19:04:06 +0000 (15:04 -0400)]
[amd64] Fix a loop variable reuse in a58c2ef804779be70832c6b0e092fbca1edaebf1.

7 years agoMerge pull request #3100 from lambdageek/dev/monoerror-exns
Aleksey Kliger (λgeek) [Mon, 6 Jun 2016 18:39:05 +0000 (14:39 -0400)]
Merge pull request #3100 from lambdageek/dev/monoerror-exns

[runtime] Pass MonoError to exception creation utilities

7 years ago[sgen] Make sure we will scan the bits correctly for complex objects
Vlad Brezae [Mon, 6 Jun 2016 11:19:40 +0000 (14:19 +0300)]
[sgen] Make sure we will scan the bits correctly for complex objects

7 years ago[sgen] Add missing memory type description
Vlad Brezae [Mon, 6 Jun 2016 00:54:25 +0000 (03:54 +0300)]
[sgen] Add missing memory type description

7 years agoMerge pull request #3104 from lambdageek/dev/monoerror-resolve_vcall
Aleksey Kliger (λgeek) [Mon, 6 Jun 2016 18:01:44 +0000 (14:01 -0400)]
Merge pull request #3104 from lambdageek/dev/monoerror-resolve_vcall

[llvm] Raise MonoError using mono_llvm_throw_exception