Age | Commit message (Collapse) | Author |
|
We started to see the `System.Core-xunit` step on CI to hit the timeout of 15 minutes with Linux/ARM64. That was weird, because the step used to be completed in around two minutes. With my local device (jetson board) I wasn't able to reproduce it either; it took around 100s there. We then realized it's specific to the new `taishan` CI machines, which are equipped with 64 cores. Hardcoding `mono_cpu_count` to return 16 restored the performance, however that isn't a viable fix.
Limiting `DefaultDegreeOfParallelism` to 16 fixes it, which is less extreme than limiting `mono_cpu_count ()`, still not ideal though. It seems to boil down to the fact that our non-netcore threadpool implementation doesn't handle a large number of cores well.
`repro.cs`, extracted from here https://github.com/dotnet/corefx/blob/a9b91e205a8794327a028cb4b29953127f0f194c/src/System.Linq.Parallel/tests/QueryOperators/ConcatTests.cs#L145-L154
```csharp
using System;
using System.Linq;
using System.Collections.Generic;
using System.Threading;
public class Repro {
public static void Main (string []args) {
const int ElementCount = 2048;
ParallelQuery<int> leftQuery = ParallelEnumerable.Range(0, ElementCount / 4).Union(ParallelEnumerable.Range(ElementCount / 4, ElementCount / 4));
ParallelQuery<int> rightQuery = ParallelEnumerable.Range(2 * ElementCount / 4, ElementCount / 4).Union(ParallelEnumerable.Range(3 * ElementCount / 4, ElementCount / 4));
var results = new HashSet<int>(leftQuery.Concat(rightQuery));
Console.WriteLine ("results.Count=" + results.Count + ", ElementCount=" + ElementCount);
}
}
```
Before fix:
```console
$ time ./mono/mini/mono-sgen repro.exe
results.Count=2048, ElementCount=2048
real 0m5.846s
user 0m0.344s
sys 0m1.929s
$ make -C mcs/class/System.Core run-xunit-test
[...]
=== TEST EXECUTION SUMMARY ===
net_4_x_System.Core_xunit-test Total: 48774, Errors: 0, Failed: 0, Skipped: 6, Time: 536.005s
```
With this fix:
```console
$ time ./mono/mini/mono-sgen repro.exe
results.Count=2048, ElementCount=2048
real 0m1.247s
user 0m0.206s
sys 0m0.225s
$ make -C mcs/class/System.Core run-xunit-test
[...]
=== TEST EXECUTION SUMMARY ===
net_4_x_System.Core_xunit-test Total: 48774, Errors: 0, Failed: 0, Skipped: 6, Time: 131.143s
```
|
|
Backport of https://github.com/dotnet/corefx/pull/29614 (#368)
Fixes https://github.com/mono/mono/issues/14450
|
|
|
|
fails on android.
|
|
on android (#365)
|
|
Android (#364)
* SystemNative_CopyFile(): move fchmod() call to top and add exception for Android.
The `fchmod()` call should happen first to ensure that the target file has the correct
permissions prior to writing into it.
On Android, we make an exception in case the `fchmod()` fails: if we can `fstat()` both
the source and the target file and the target file's permissions are at least as restrictive
as the source file's, then we allow the operation to proceed.
See https://github.com/mono/mono/issues/17133 for details.
* Update pal_io.c
|
|
|
|
way as the constructor does. (#361)
It will now call into IsAllowedAbsoluteUri, which adds some mono specific checks.
|
|
* Test only fixes *
Port PR #36018 from master branch
This PR changes the Azure test endpoint to use Azure App Service instead of the classic Azure
Cloud Service endpoint. The use of the classic Azure Cloud Service is no longer recommended
since it is harder to maintain.
Once all remaining branches are converted, we will shut down the corefx-net.cloudapp.net
endpoint.
This PR also includes some other test fixes and tests disabled due to active issues.
|
|
* Fixing unit test error of xamarin-macios during mono 2019-10 integration.
Error:
System.MissingMemberException : The lazily-initialized type does not have a public, parameterless constructor.
Marek suggested to use a factory lambda when calling LazyInitializer.EnsureInitialized.
|
|
We need to ifdef out the `Editor` attribute since System.Drawing.Design is not there on mobile.
|
|
Remove the nullability annotations for now.
|
|
Backport of #350.
|
|
|
|
NetworkStreamTest.ReadAsync_ContinuesOnCurrentSynchronizationContextIfDesired(). (#346)
We currently do not run any of the NetworkStream tests; disabling this one will allow us
to do so with my upcoming PR that will use NetworkStream from CoreFX.
|
|
|
|
|
|
Backport of: https://github.com/dotnet/corefx/pull/41013
|
|
|
|
The Uri will eventually be combined w/ a base address and will eventually make a proper one.
This restores mono's old Uri + HttpClient behavior, added originally by https://github.com/mono/mono/commit/0b7afa989dafd4d712d5a94044fd98ecc40f2ecc
The issue was logged from: https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_workitems/edit/967582
It appears that the test that would have caught this was disabled via this commit:
https://github.com/mono/mono/commit/2f411750acfd2132f9b4970ef8cf11d9a0f62df9
|
|
symlink() doesn't work on TVOS devices.
|
|
This was a bug in the tests from mono/mono#15616
Fixes https://github.com/mono/mono/issues/16360
|
|
|
|
|
|
https://github.com/mono/mono/pull/16049 (#323)
|
|
* Guard against attempting to creating out-of-range spans in macOS FileSystemWatcher
* Only slice out the root watch directory from path iff it is actually the first part of the path
|
|
https://github.com/mono/mono/issues/15259
|
|
mcs has problems with this new C# feature: "error CS1644: Feature `pattern matching' cannot be used because it is not part of the C# 7.3 language specification"
|
|
Allow copying/moving/replacing broken symlinks
|
|
(#30217) (#313)
* Skip old time zones with offsets higher than 14h
* apply offline feedback
* fix braces
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
|
|
|
|
* Log exceptions from asynchronously failing Expect: 100-continue sends
When Expect: 100-continue is used, the sending of the request body content is allowed to run concurrently with the receipt of the response headers. If the processing of the response headers encounters an exception, we currently fail to ever join with that send task, which results in a TaskScheduler.UnobservedTaskException event. This PR changes to observe the exception in such cases and log it.
(In doing so, I also came across an async void method, and changed all of the remaining ones in the assembly to be async Task instead. The current implementation of async void isn't any cheaper than async Task, and is actually more expensive in certain ways, plus it unnecessarily interacts with any SynchronizationContext that may exist.)
* Address PR feedback
(cherry picked from commit 0bc3ee4a4f1debaa0dd3c957d5201ae2a47757a1)
|
|
|
|
|
|
Mono ignores the `EncryptionPolicy` enum and always requires encryption, so we should
disable this entire test class.
|
|
|
|
|
|
This allows us to use the test with the managed linker enabled in Xamarin.iOS
since it no longer strips out the MaxValue/MinValue fields.
See mono/mono#14877
Port of upstream corefx PR dotnet#39095
|
|
* Fixes https://github.com/mono/mono/issues/15434 by checking if the path
is effectively empty before interacting with any Path methods.
We needed to modify the fork at this point because Mono still supports
netfx Path rules, which cannot contain spaces (CoreFX allows this on nix).
* Review tweaks
|
|
|
|
https://github.com/mono/mono/issues/14864
Note that this is a Mono CoreFX change only.
|
|
The goal is to allow the linker to remove some of the globalization code
that is conditional to `GlobalizationMode.Invariant`.
Since the linker does not currently support dead code elimination, it cannot
break down any conditionals inside method bodies. One trick that we use to
work around this is to move those conditional pieces into separate methods;
then we can give the linker a list of those methods and tell it to replace
their bodies with exceptions.
In this particular case, we do not want to access the `JapaneseCalendar` and
`TaiwanCalendar` types from methods that could not (currently) be linked out.
The `DateTimeFormatInfo.PopulateSpecialTokenHashTable()` method does not
explicitly reference any of those, but it is quite big so we benefit from
having the non-invariant pieces in a separate method which can then be removed.
|
|
The test was done against corefx/master and does not compile with
our fork because of changes in their `LoopbackServer` as well as
a new `HttpClientTestBase` subclass that was introduced in master.
|
|
PUT request. (#38129)
* HttpClient.SendAsync() should not attempt to read response body on a HEAD or PUT request.
* Update HttpMethod.cs
* Address feedback.
* Cleanup.
* Update HttpRequestMessageTest.cs
(cherry picked from commit 73e610f847f9c5100a0cec4a80692969836ff35d)
|
|
|
|
|
|
|
|
|
|
|
|
They cause issues on iOS where all p/invokes need to be resolved.
|