platform/upstream/dotnet/runtime.git
3 years agoRevert " Define SIGSTOP for architecture mips (#40299)" (#40470)
Santiago Fernandez Madero [Thu, 6 Aug 2020 18:35:48 +0000 (11:35 -0700)]
Revert " Define SIGSTOP for architecture mips (#40299)" (#40470)

This reverts commit 0f7370baa68c5809f93095cbce9bf614f44cc731.

3 years agoSimplify JS interop for Blazor WebAssembly (#40467)
Steve Sanderson [Thu, 6 Aug 2020 18:25:59 +0000 (19:25 +0100)]
Simplify JS interop for Blazor WebAssembly (#40467)

3 years agoRe-enable debug_levels less than zero to indicate debugging without debug logging...
Larry Ewing [Thu, 6 Aug 2020 18:19:59 +0000 (13:19 -0500)]
Re-enable debug_levels less than zero to indicate debugging without debug logging (#40458)

3 years agoAdd nodejs and npm install steps (#40474)
Drew Scoggins [Thu, 6 Aug 2020 17:35:56 +0000 (10:35 -0700)]
Add nodejs and npm install steps (#40474)

3 years agoFix several typos in bash script generation for Crossgen2 (#40417)
Tomáš Rylek [Thu, 6 Aug 2020 16:39:42 +0000 (18:39 +0200)]
Fix several typos in bash script generation for Crossgen2 (#40417)

3 years ago[wasm] Fix GC support in ves_icall_get_trace (). (#40384)
Zoltan Varga [Thu, 6 Aug 2020 14:52:46 +0000 (10:52 -0400)]
[wasm] Fix GC support in ves_icall_get_trace (). (#40384)

* [wasm] Fix GC support in ves_icall_get_trace ().

* Fix a c++-ism.

3 years ago[System.Console] Fix manual test (#39460)
Eirik Tsarpalis [Thu, 6 Aug 2020 11:28:06 +0000 (12:28 +0100)]
[System.Console] Fix manual test (#39460)

* do not report '\n' as Ctrl+Enter on unix

* add macos instructions

* add windows test instructions

3 years agoCheck more patterns for retBuffer. (#40340)
Sergey Andreenko [Thu, 6 Aug 2020 07:57:33 +0000 (00:57 -0700)]
Check more patterns for retBuffer. (#40340)

* Check more patterns for retBuffer.

We force return buffers containing GC pointers to be on the stack and before we make a copy we check if the return buffer is already on the stack. Fix the check by adding `LCL_VAR_ADDR`, `ADD(LCL_VAR_ADDR, CNST)` patterns.

* Clear `EnableExtraSuperPmiQueries` during SPMI replay.

It is set during collection for easier test of struct promotion enhancements but it could let to chk/rel diffs if used during replay.

3 years agoRemove EventSourceAttribute usages when EventSource feature is disabled (#40329)
Marek Safar [Thu, 6 Aug 2020 07:42:59 +0000 (09:42 +0200)]
Remove EventSourceAttribute usages when EventSource feature is disabled (#40329)

3 years ago Define SIGSTOP for architecture mips (#40299)
SUN Guoyun [Thu, 6 Aug 2020 05:06:02 +0000 (13:06 +0800)]
 Define SIGSTOP for architecture mips (#40299)

 define SIGSTOP 19 is just ok for architecture x86、arm、s390、powerpc and so on.
 but others architecture has different values.

Co-Authored-By: hev <wangrui@loongson.cn>
3 years agoFix Docker cross-build command (#40433)
Oleksandr Tymoshenko [Thu, 6 Aug 2020 04:58:39 +0000 (07:58 +0300)]
Fix Docker cross-build command (#40433)

3 years agoImprove dictionary & hashset lookup perf for OrdinalIgnoreCase (#36252)
Levi Broderick [Thu, 6 Aug 2020 04:16:21 +0000 (21:16 -0700)]
Improve dictionary & hashset lookup perf for OrdinalIgnoreCase (#36252)

3 years agoAdd HeaderEncodingSelector to MultipartContent (#39169)
Miha Zupan [Thu, 6 Aug 2020 02:56:52 +0000 (04:56 +0200)]
Add HeaderEncodingSelector to MultipartContent (#39169)

* Add HeaderEncodingSelector to MultipartContent

* Test cleanup

* Avoid WriteLatin1 logic duplication

* Move to common HeaderEncodingSelector<TContext>

* Fix indentation

3 years agoConsider debug levels less than zero disabled (#40429)
Larry Ewing [Thu, 6 Aug 2020 02:28:31 +0000 (21:28 -0500)]
Consider debug levels less than zero disabled (#40429)

3 years agoFix -numproc script handling (#40437)
Steve MacLean [Thu, 6 Aug 2020 01:54:00 +0000 (21:54 -0400)]
Fix -numproc script handling (#40437)

3 years agoFix crossgenning of sparse COM interface types on non-Windows and add test (#40404)
Jeremy Koritzinsky [Thu, 6 Aug 2020 00:52:34 +0000 (17:52 -0700)]
Fix crossgenning of sparse COM interface types on non-Windows and add test (#40404)

3 years ago[mono] Don't save byref `System.Void` into `MonoDomain::typeof_void`. (#40405)
imhameed [Thu, 6 Aug 2020 00:49:12 +0000 (17:49 -0700)]
[mono] Don't save byref `System.Void` into `MonoDomain::typeof_void`. (#40405)

`mono_type_get_object_checked` will return the `MonoReflectionType`
referred to by `MonoDomain::typeof_void` if present. If a byref
`System.Void` is stored in this field, then
`get_ContainsGenericParameters` applied to `System.Void` will loop
indefinitely, because our implementation of
`get_ContainsGenericParameters` expects `GetElementType` to yield a
`MonoReflectionType` with one layer of "type function application"
removed.

Fixes https://github.com/dotnet/runtime/issues/37489.

3 years agoTurnoff wasm runs for CI (#40421)
Drew Scoggins [Wed, 5 Aug 2020 23:12:54 +0000 (16:12 -0700)]
Turnoff wasm runs for CI (#40421)

3 years agoRefactor Microsoft.Extensions TargetFrameworks (#40397)
Eric StJohn [Wed, 5 Aug 2020 22:59:28 +0000 (15:59 -0700)]
Refactor Microsoft.Extensions TargetFrameworks (#40397)

I went through every Microsoft.Extensions project to try to either
reduce the number of TargetFrameworks they build for, or add
a TargetFramework to avoid the need of bringing an additional
dependency on Microsoft.Bcl.AsyncInterfaces.

3 years ago[wasm] Moving wasm debugger to dotnet/runtime (#40146)
Thays Grazia [Wed, 5 Aug 2020 22:34:41 +0000 (19:34 -0300)]
[wasm] Moving wasm debugger to dotnet/runtime (#40146)

* Moving Wasm debugger to dotnet/runtime

The build is working.
The tests are running.
- make -C src/mono/wasm/ run-debugger-tests

3 years agoBuild Globalization native shim as C++ and don't define __typeof (#40352)
Santiago Fernandez Madero [Wed, 5 Aug 2020 22:22:51 +0000 (15:22 -0700)]
Build Globalization native shim as C++ and don't define __typeof (#40352)

* Build Globalization native shim as C++ and don't define __typeof
intrinsic

* PR Feedback, use TYPEOF in all shims

3 years agoAdding support for X86Base.CpuId (#40167)
Tanner Gooding [Wed, 5 Aug 2020 22:16:05 +0000 (15:16 -0700)]
Adding support for X86Base.CpuId (#40167)

* Adding support for X86Base.CpuId

* Rename getcpuid and getextcpuid to __cpuid and __cpuidex, respectively

* Removing xchg from the Unix x64 __cpuid implementation

* Add a comment as to why the X86/X86Base/CpuId test limits the checked vendors

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Adding back a missing parentheses

* Fixing a typo in the isGenuineIntel check

* Avoid a conflict around cpuInfo

* Avoid an implicit cast when comparing the cpuidInfo

* Separate the __cpuidex qcall into coreclr and mono specific variants

* Add the partial modifier to the X86Base.PlatformNotSupported.cs file

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years ago[test] fix hang in macOS variants of reverse diagnostics server tests (#40225)
John Salem [Wed, 5 Aug 2020 21:39:45 +0000 (14:39 -0700)]
[test] fix hang in macOS variants of reverse diagnostics server tests (#40225)

Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
3 years agoAdd wasm runs (#39548)
Drew Scoggins [Wed, 5 Aug 2020 21:38:10 +0000 (14:38 -0700)]
Add wasm runs (#39548)

* Add WASM microbenchmark runs

This commit adds WASM microbenchmark support to the perf lab.

* Increase timeout for first run

* Add runkind

* Update proj file selection

3 years agoSystem.Diagnostics.Activity Perf Improvement (#40362)
Mikel Blanchard [Wed, 5 Aug 2020 20:45:22 +0000 (13:45 -0700)]
System.Diagnostics.Activity Perf Improvement (#40362)

3 years ago[mono] Pass delegate target when using CreateDelegate (#40321)
Vlad Brezae [Wed, 5 Aug 2020 20:04:00 +0000 (23:04 +0300)]
[mono] Pass delegate target when using CreateDelegate (#40321)

* Pass delegate target when using CreateDelegate

* [tests] Add test that checks `this` with CreateDelegate API

3 years agoAdd support for reporting byrefs to RVA static fields of collectible assemblies ...
David Wrighton [Wed, 5 Aug 2020 19:54:45 +0000 (12:54 -0700)]
Add support for reporting byrefs to RVA static fields of collectible assemblies (#40346)

- Keep track of all RVA static field locations
  - For assemblies loaded from PE files, use a range that is the entire PE range
  - For assemblies dynamically created, use piecemeal ranges for each individual RVA static field
- Report byref references via the GcReportLoaderAllocator mechanism in PromoteCarefully

- Add a test to cover this scenario, and thread statics
  - disable test on Mono, as it doesn't pass there yet

3 years agoIn mono_wasm_invoke_js_marshalled, pass through treatResultAsVoid parameter (#39435)
Steve Sanderson [Wed, 5 Aug 2020 19:10:13 +0000 (20:10 +0100)]
In mono_wasm_invoke_js_marshalled, pass through treatResultAsVoid parameter (#39435)

3 years agoAdd savepoint API to DbTransaction (#34561)
Shay Rojansky [Wed, 5 Aug 2020 19:02:13 +0000 (22:02 +0300)]
Add savepoint API to DbTransaction (#34561)

Closes #33397

3 years agoIssue 39764 fix: Host and Application Lifetime Notifications (#39832)
Werner Mairl [Wed, 5 Aug 2020 18:48:57 +0000 (20:48 +0200)]
Issue 39764 fix: Host and Application Lifetime Notifications (#39832)

3 years agoTransform dead late arg store to NOP (#40348)
Carol Eidt [Wed, 5 Aug 2020 18:33:30 +0000 (11:33 -0700)]
Transform dead late arg store to NOP (#40348)

When deleting a dead store, preserve the GTF_LATE_ARG and transform it to NOP.

Fix #39742

3 years agoremove dead code (#40363)
Geoff Kizer [Wed, 5 Aug 2020 17:48:27 +0000 (10:48 -0700)]
remove dead code (#40363)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years agoAdd BindConfiguration extension method for OptionsBuilder (#39825)
Fredrik Høisæther Rasch [Wed, 5 Aug 2020 16:50:22 +0000 (18:50 +0200)]
Add BindConfiguration extension method for OptionsBuilder (#39825)

3 years agoMark System.Security.Cryptography.OpenSsl as unsupported on Windows, fixes #40101...
Adam Sitnik [Wed, 5 Aug 2020 16:25:25 +0000 (18:25 +0200)]
Mark System.Security.Cryptography.OpenSsl as unsupported on Windows, fixes #40101 (#40377)

3 years agoMark existing Windows-specific APIs without a version number, fixes #40095 (#40375)
Adam Sitnik [Wed, 5 Aug 2020 16:24:03 +0000 (18:24 +0200)]
Mark existing Windows-specific APIs without a version number, fixes #40095 (#40375)

3 years agoWhen invoking class constructor ensure class is initialized (#40293)
David Wrighton [Wed, 5 Aug 2020 16:10:15 +0000 (09:10 -0700)]
When invoking class constructor ensure class is initialized (#40293)

When invoking the class constructor method via reflection invoke, ensure that the class constructor is run via the standard run class constructor pathway instead of running it explicitly. Do the same for module constructors.

3 years agoRename MinimumOSPlatformAttribute and RemovedInOSPlatformAttribute (#40371)
Adam Sitnik [Wed, 5 Aug 2020 11:47:50 +0000 (13:47 +0200)]
Rename MinimumOSPlatformAttribute and RemovedInOSPlatformAttribute (#40371)

* rename attributes:

* MinimumOSPlatformAttribute -> SupportedOSPlatformAttribute
* RemovedInOSPlatformAttribute -> UnsupportedOSPlatformAttribute

* update src and ref files

* update .targets file

* update comment ;)

3 years agoUnix: throw PNSE from BeginAccept/EndAccept that attempts to receive a buffer (#40292)
Anton Firszov [Wed, 5 Aug 2020 11:32:28 +0000 (13:32 +0200)]
Unix: throw PNSE from BeginAccept/EndAccept that attempts to receive a buffer (#40292)

Resolve #32633
- BeginAccept/EndAccept overloads which are attempting to also receive a buffer are currently only supported on Windows, therefore PNSE is thrown on Unix
- When the operation is supported, the returned buffer is never null, therefore the out byte[] buffer parameters are altered to be non-nullable

3 years agoDo not trim generic interfaces implemented by arrays (#40260)
Michal Strehovský [Wed, 5 Aug 2020 10:59:48 +0000 (12:59 +0200)]
Do not trim generic interfaces implemented by arrays (#40260)

Logic within the CoreCLR VM depends on the order of methods on these interfaces to find methods on SZArrayHelper.

SZArrayHelper is already rooted from MscorlibBinder, but the interface methods are referenced only implicitly through their slots and need a dedicated entry.

3 years agoFix corerun binplacing in testhost (#40341)
Viktor Hofer [Wed, 5 Aug 2020 07:40:55 +0000 (09:40 +0200)]
Fix corerun binplacing in testhost (#40341)

Fixes https://github.com/dotnet/runtime/issues/40215

3 years ago[master] Update dependencies from dotnet/icu dotnet/llvm-project mono/linker (#40268)
dotnet-maestro[bot] [Wed, 5 Aug 2020 05:08:27 +0000 (05:08 +0000)]
[master] Update dependencies from dotnet/icu dotnet/llvm-project mono/linker (#40268)

[master] Update dependencies from dotnet/icu dotnet/llvm-project mono/linker
- Updates:
  - Microsoft.NET.ILLink.Tasks: from 5.0.0-preview.3.20378.1 to 5.0.0-preview.3.20403.5

- Updates:
  - Microsoft.NETCore.Runtime.ICU.Transport: from 5.0.0-preview.8.20378.2 to 5.0.0-preview.8.20403.1

- Updates:
  - runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1
  - runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 9.0.1-alpha.1.20365.1 to 9.0.1-alpha.1.20403.1

 - Fix linker tests by fixing some warnings, and suppressing reflection warnings during the linker tests.

 - Merge remote-tracking branch 'upstream/master' into UpdateLinker

 - Suppress IL2008;IL2009 on non-Windows linker tests.

 - Suppress more linker warnings on non-Windows.

 - Suppress more linker warnings

3 years agoClean up more byte packing/unpacking. (#40334)
Kevin Jones [Wed, 5 Aug 2020 05:01:13 +0000 (01:01 -0400)]
Clean up more byte packing/unpacking. (#40334)

3 years agoRemove potential NULLCHECK creation after LIR on arm32. (#40349)
Sergey Andreenko [Wed, 5 Aug 2020 04:02:17 +0000 (21:02 -0700)]
Remove potential NULLCHECK creation after LIR on arm32. (#40349)

* Use `TransformUnusedIndirection` in LIR liveness.

* Use `TYP_INT` as `TransformUnusedIndirection` does.

* fix grammar.

3 years agoAdd runtime feature checks for 5.0 browser (#40347)
Larry Ewing [Wed, 5 Aug 2020 03:58:54 +0000 (22:58 -0500)]
Add runtime feature checks for 5.0 browser (#40347)

3 years agoAnnotate Extensions.Options to make it linker friendly (#40294)
Eric Erhardt [Wed, 5 Aug 2020 02:13:21 +0000 (21:13 -0500)]
Annotate Extensions.Options to make it linker friendly (#40294)

* Annotate Extensions.Options to make it linker friendly

Fix #40236

3 years agoAdd Browser specific PersistedFiles implementation (#39350)
Marek Safar [Wed, 5 Aug 2020 02:00:13 +0000 (04:00 +0200)]
Add Browser specific PersistedFiles implementation (#39350)

* Add Browser specific PersistedFiles implementation

Simplified the implementation removes dependency on several native calls
which all return only default values.

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoAdd LoggerColorBehavior (#40221)
Maryam Ariyan [Wed, 5 Aug 2020 00:25:03 +0000 (17:25 -0700)]
Add LoggerColorBehavior (#40221)

3 years ago[wasm] Make mono_wasm_get_obj_type () GC safe by doing all object access before calli...
Zoltan Varga [Tue, 4 Aug 2020 22:18:21 +0000 (18:18 -0400)]
[wasm] Make mono_wasm_get_obj_type () GC safe by doing all object access before calling into the runtime. (#40312)

Part of the fix for https://github.com/dotnet/runtime/issues/40132.

3 years agoDon't suspend for debugger while holding the slot backpatching lock (#40060)
Koundinya Veluri [Tue, 4 Aug 2020 22:02:35 +0000 (18:02 -0400)]
Don't suspend for debugger while holding the slot backpatching lock (#40060)

- Mostly reverted the previous workaround for the issue (commit fc06054a774e28a5a47bbe862adcf03251abb43c)
- Added a forbid-suspend-for-debugger region in preemptive GC mode
- Added a crst holder type that acquires a lock and enters the forbid region
- Where the slot backpatching lock would be taken where cooperative GC mode may be entered inside that lock, the new crst holder is used
- When a suspend for debugger is requested, a thread in preemptive GC mode that is in the forbid region is considered not yet suspended and is synched later similarly to threads in cooperative GC mode

Fixes https://github.com/dotnet/runtime/issues/37278

3 years agoMono: Ensure tasklets are removed in netcore build (#40324)
Alexander Köplinger [Tue, 4 Aug 2020 20:25:58 +0000 (22:25 +0200)]
Mono: Ensure tasklets are removed in netcore build (#40324)

Tasklets were an old mono-specific extension for continuations that is no longer relevant.

3 years agoMake macOS targets in global build job template default to 120 minutes timeout (...
Santiago Fernandez Madero [Tue, 4 Aug 2020 19:59:46 +0000 (12:59 -0700)]
Make macOS targets in global build job template default to 120 minutes timeout (#40330)

3 years agoFix warning in debugger-agent.c (#40325)
Alexander Köplinger [Tue, 4 Aug 2020 19:48:16 +0000 (21:48 +0200)]
Fix warning in debugger-agent.c (#40325)

```
  CC       libmono_dbg_la-debugger-agent.lo
/Users/runner/work/1/s/src/mono/mono/mini/debugger-agent.c:1088:9: warning: unused variable 'argv' [-Wunused-variable]
                char *argv [ ] = {
```

3 years agofix typo: fuitful -> fruitful (#40333)
Bruno Garcia [Tue, 4 Aug 2020 19:44:28 +0000 (15:44 -0400)]
fix typo: fuitful -> fruitful (#40333)

3 years agoAdd more runtime GC counters (#38851)
Sung Yoon Whang [Tue, 4 Aug 2020 19:17:16 +0000 (12:17 -0700)]
Add more runtime GC counters (#38851)

* Add more GC counters

* Cleanup

* Change size of last GC stats arrays from total_generation_count to max_generation

* add asserts and fix error

* fix typo

* Fix Windows build

* Remove pause time / time between GC counters as discussed in design PR

* revert changes to GC for unused counters

* more unnecessary changes

* build fix

* last bit of undoing changes

* CR feedback

3 years agoAdd step to run linker on entire runtime pack during libraries build (#40172)
Layomi Akinrinade [Tue, 4 Aug 2020 18:43:24 +0000 (11:43 -0700)]
Add step to run linker on entire runtime pack during libraries build (#40172)

* Add step to run linker on entire runtime pack during libraries build

* Address feedback

* Only run for NetCoreAppCurrent

* Include appropriate S.P.CoreLib

* Address review feedback

* Add common property group for shared linker args; remove unneeded changes from PR

* Rename illink-sharedframeworks.targets to illink-sharedframework.targets

* Address review feedback

3 years agoMinimum CMake downgrade for Linux (#39044)
Jeremy Koritzinsky [Tue, 4 Aug 2020 18:04:05 +0000 (11:04 -0700)]
Minimum CMake downgrade for Linux (#39044)

Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
3 years agocleanup schannel pal (#39755)
Tomas Weinfurt [Tue, 4 Aug 2020 17:28:04 +0000 (10:28 -0700)]
cleanup schannel pal (#39755)

* cleanup schannel pal

* fix netfx

3 years agoFix logger output. (#40291)
Larry Ewing [Tue, 4 Aug 2020 17:09:27 +0000 (12:09 -0500)]
Fix logger output. (#40291)

3 years ago[runtime] Handle null byref returns in runtime invokes. (#40071)
Zoltan Varga [Tue, 4 Aug 2020 17:06:36 +0000 (13:06 -0400)]
[runtime] Handle null byref returns in runtime invokes. (#40071)

* [runtime] Handle null byref returns in runtime invokes.

Fixes https://github.com/dotnet/runtime/issues/39380.

* Reenable fixed test

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoNormalize array magic numbers and remove switch (#40279)
Larry Ewing [Tue, 4 Aug 2020 16:50:39 +0000 (11:50 -0500)]
Normalize array magic numbers and remove switch (#40279)

3 years ago[browser][io] Workaround for issue MoveDirectory (#40310)
Kenneth Pouncey [Tue, 4 Aug 2020 14:57:14 +0000 (16:57 +0200)]
[browser][io] Workaround for issue MoveDirectory (#40310)

* [browser][io] Workaround for issue MoveDirectory

- Issue workaround while waiting for emscripten fix.  https://github.com/dotnet/runtime/issues/40305
- The following code checks for the existence of the source and destination directories which replaces the same code in the emscripten code.

emscripten tracking issue:  https://github.com/emscripten-core/emscripten/issues/11804

* Update src/libraries/System.IO.FileSystem/src/System/IO/FileSystem.Unix.cs

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoFix hang in HTTP/2 handling of canceling credit waits (#40243)
Stephen Toub [Tue, 4 Aug 2020 14:31:40 +0000 (10:31 -0400)]
Fix hang in HTTP/2 handling of canceling credit waits (#40243)

* Re-combine CreditWaiter and CancelableCreditWaiter

The split was to optimize the case when there's no cancellation token, but based on the evolution of the codebase, that doesn't really happen, and it makes the common cancellation case a bit more expensive (and convoluted).

* Fix hang in HTTP/2 handling of canceling credit

The CreditWaiter took a lock to protect its ManualResetValueTaskSourceCore state.  The lock was also shared with its parent.  This could result in a situation where the parent was holding the lock and called into the CreditWaiter to dispose of it and in turn dispose of the registration with the CancellationToken.  That registration could have represented an in-flight cancellation callback, which would also try to take the lock in order to complete the MRVTSC.  And since CancellationTokenRegistration.Dispose blocks waiting for an in-flight cancellation callback to complete, this could deadlock, with a thread holding the lock while waiting for another thread that tries to take the lock to make forward progress.

This fixes it simply by avoiding the lock entirely and instead using a simple compare-exchange to protect the right to complete the MRVTSC.

* Address PR feedback

3 years agoXml docs for SocketsHttpHandler's IsSupported and EnableMultipleHttp2Connections...
Alexander Nikolaev [Tue, 4 Aug 2020 14:12:11 +0000 (16:12 +0200)]
Xml docs for SocketsHttpHandler's IsSupported and EnableMultipleHttp2Connections (#40308)

Fixes #39489

3 years agoCleanup EventSource (#40204)
Jan Kotas [Tue, 4 Aug 2020 13:42:19 +0000 (06:42 -0700)]
Cleanup EventSource (#40204)

* Move StubEnvironment.cs to Microsoft.Diagnostics.Tracing.EventSource.Redist

* Delete ES_BUILD_PCL and ES_BUILD_AGAINST_DOTNET_V35

3 years agoBump timeout in global-build.yml for debug runtime builds (#40309)
Alexander Köplinger [Tue, 4 Aug 2020 13:40:00 +0000 (15:40 +0200)]
Bump timeout in global-build.yml for debug runtime builds (#40309)

A good build of the `runtime-live-build` pipeline takes between 45-55mins for the debug runtime configurations already so we sometimes run into the 60mins default Azure DevOps timeout if we happen to catch a slow machine.

Bumping the timeout to 120mins like we do in other pipelines to fix this.

3 years agoReduce binary size by moving data definitions out of headers. (#40254)
Austin Wise [Tue, 4 Aug 2020 11:08:56 +0000 (04:08 -0700)]
Reduce binary size by moving data definitions out of headers. (#40254)

3 years agoIncreased timeouts, fixed indentation. (#40273)
Marie Píchová [Tue, 4 Aug 2020 10:51:04 +0000 (12:51 +0200)]
Increased timeouts, fixed indentation. (#40273)

3 years ago[Wasm] Enable System.Data.Common tests (#39463)
Steve Pfister [Tue, 4 Aug 2020 09:44:58 +0000 (05:44 -0400)]
[Wasm] Enable System.Data.Common tests (#39463)

Disable the tests that require SQL Server.

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Co-authored-by: Maxim Lipnin <v-maxlip@microsoft.com>
3 years agoWASM: Pump timer queue in xharness when running unit tests (#40278)
Alexander Köplinger [Tue, 4 Aug 2020 09:39:15 +0000 (11:39 +0200)]
WASM: Pump timer queue in xharness when running unit tests (#40278)

* WASM: Pump timer queue in xharness when running unit tests

We only pumped the threadpool but we didn't pump the timer queue inside the xharness runner, so in the case of Task.Delay() it'll schedule a callback on the timer queue and that will never happen which leads to the infinite loop waiting for the test to finish.
To fix that we call an internal method to pump the timer queue like we do for the threadpool.

Requires an xharness bump to include https://github.com/dotnet/xharness/pull/290

Fixes https://github.com/dotnet/runtime/issues/38931

* Don't nullref if no timers were started

3 years ago[wasm] Modify System.Net.Request to throw PNSE on Browser WASM (#40274)
Maxim Lipnin [Tue, 4 Aug 2020 08:01:22 +0000 (11:01 +0300)]
[wasm] Modify System.Net.Request to throw PNSE on Browser WASM (#40274)

* [wasm] Modify System.Net.Request to throw PNSE on Browser WASM

* [wasm] Re-enable System.ComponentModel.EventBasedAsync.Tests.BackgroundWorkerTests.TestFinalization test

* Make the CS0809 build warning depend on if PNSE assembly is going to be generated

* Update src/libraries/System.Net.Requests/src/System.Net.Requests.csproj

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
* Remove redundant condition

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoimprove exception message when HTTP2 connection establishment fails (#40251)
Geoff Kizer [Tue, 4 Aug 2020 04:44:37 +0000 (21:44 -0700)]
improve exception message when HTTP2 connection establishment fails (#40251)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
3 years agoChange new thread's affinity after thread starts, from the same thread, as a workarou...
Koundinya Veluri [Tue, 4 Aug 2020 04:17:46 +0000 (00:17 -0400)]
Change new thread's affinity after thread starts, from the same thread, as a workaround for Snap (#40205)

- Snap's default strict confinement doesn't allow setting the affinity of a different thread, and currently doesn't allow `sched_setaffinity(<nonzeroPid>, ...)`, which pthread implementation calls
- Switched to use sched_setaffinity(0, ...) where appropriate

Fix for https://github.com/dotnet/runtime/issues/1634 in master

3 years agoCheck if a method is dynamic when transforming internal calls (#40266)
Fan Yang [Tue, 4 Aug 2020 02:11:55 +0000 (22:11 -0400)]
Check if a method is dynamic when transforming internal calls (#40266)

3 years agoFix Windows coreclr.dll size regression (#40282)
Jan Vorlicek [Tue, 4 Aug 2020 02:10:23 +0000 (04:10 +0200)]
Fix Windows coreclr.dll size regression (#40282)

* Fix Windows coreclr.dll size regression

A recent change has replaced usage of SELECTANY by constexpr to
significantly reduce size of coreclr binaries on Unix. But it has
resulted in about 180kB regression in coreclr.dll size on Windows.

This change gets rid of the constexpr at places that can be reasonably
moved to having declaration in header and definition in a .cpp file.
I've also found a couple of things that are not used anymore, so I have
deleted them.

The only thing where I've moved back to using SELECTANY on Windows is
the DbgIPCEventTypeNames in dbgipcevents.h. That table and the related
GetEventType / GetEventName methods are used in both mscordbi and
coreclr and sharing a .cpp source with the data between those two
libraries was ugly and problematic.

* Fix x86 build

* Fix clang format

* Reflect PR feedback
defined(_MSC_VER)

3 years agoFix attribute differences in between refs and implementations (#40185)
Santiago Fernandez Madero [Mon, 3 Aug 2020 23:54:10 +0000 (16:54 -0700)]
Fix attribute differences in between refs and implementations (#40185)

* Fix attribute differences in between refs and implementations

* Update APICompat version and address feedback

* Fix builds

* PR Feedback, include attributes for all tfms in S.T.Json ref

3 years agoUse Environment.SystemPageSize to set desireBufferSize (#40247)
SUN Guoyun [Mon, 3 Aug 2020 23:11:05 +0000 (07:11 +0800)]
Use Environment.SystemPageSize to set desireBufferSize (#40247)

PAGE_SIZE is not all 4096 for all architecture, so we can get it by Environment.SystemPageSize

Co-authored-by: Sunguoyun <sunguoyun@loongson.cn>
3 years agoDon't rely on the built-in interface marshaller during COM activation. (#40228)
Aaron Robinson [Mon, 3 Aug 2020 22:30:09 +0000 (15:30 -0700)]
Don't rely on the built-in interface marshaller during COM activation. (#40228)

* Don't rely on the built-in marshaller during activation.

Relying on the built-in marshaller leverages the Class interface approach
which doesn't work for some interface types (e.g. interfaces inheriting
from IDispatch).

This approach is wrong regardless of why given that COM dictates the
returned value must be properly cast the specific interface vtable.

3 years agoDon't remove dead indirections that may throw. (#40226)
Eugene Rozenfeld [Mon, 3 Aug 2020 21:59:27 +0000 (14:59 -0700)]
Don't remove dead indirections that may throw. (#40226)

Liveness incorrectly removed indirection rhs's of dead assignments.
This change fixes that.

Fixes #39823.

3 years agoImprove default ciphersuites on Linux
Jeremy Barton [Mon, 3 Aug 2020 21:26:55 +0000 (14:26 -0700)]
Improve default ciphersuites on Linux

The ciphersuites are now server-order preferenced, which matches Windows and macOS.

The ciphersuite list is:
* Anything provided via the CipherSuitePolicy, otherwise
* Anything provided via config (OPENSSL_CONF or default)
* An opinionated default

The opinionated default currently contains one TLS 1.0/1.1 ciphersuite for each of an RSA or ECDSA server certificate,
due to complexities in the current tests with not expecting "there are no valid ciphersuites enabled" errors with asking
for those lower protocol versions explicitly.  With TLS 1.0/1.1 still enabled by default the server config does not get an "A"
from SslLabs out of the box; followup work will increase test robustness and remove that fallback.

3 years agoAdd ActivityContext parsing APIs (#40183)
Tarek Mahmoud Sayed [Mon, 3 Aug 2020 21:03:42 +0000 (14:03 -0700)]
Add ActivityContext parsing APIs (#40183)

* Add ActivityContext parsing APIs

* Address the feedback

3 years agofix regression in ChannelBinding/NTLM auth (#40222)
Tomas Weinfurt [Mon, 3 Aug 2020 20:08:46 +0000 (13:08 -0700)]
fix regression in ChannelBinding/NTLM auth (#40222)

* fix regression in ChannelBinding/NTLM auth

* fix index

3 years agoFix the trimming tests to link non-app assemblies correctly. (#40246)
Eric Erhardt [Mon, 3 Aug 2020 20:08:04 +0000 (15:08 -0500)]
Fix the trimming tests to link non-app assemblies correctly. (#40246)

The PrepareForILLink target will pass any ManagedAssemblyToLink that isn't marked as IsTrimmable=true to a TrimmerRootAssembly. This will cause the assembly to be passed to the linker with `-a`, which means the asesmbly won't be fully trimmed. So any assembly outside of the runtimepack will be passed with -a (for example Microsoft.Extensions.*).

Fix this by moving to BeforeTargets=PrepareForILLink and marking the single application assembly as a root.

3 years agoType verification in tests (#40186)
David Wrighton [Mon, 3 Aug 2020 20:03:23 +0000 (13:03 -0700)]
Type verification in tests (#40186)

- Enable type layout verification in crossgen2 test passes

Product bugs found/fixed
- Fix type blittability issue found during enabling this test.
  - HFA encoding was not correct for Arm64, and did not have R2R defined constants

- Fix type layout verification infrastructure issues
  - Do not generate type layout checks or verification if the offset is 24 bits or larger
  - Only load approx enclosing type when verifying, instead of enclosing type (this avoids asserts)

3 years agoGenerating the verison and other macros on the fly (#39670)
Anirudh Agnihotry [Mon, 3 Aug 2020 19:46:34 +0000 (12:46 -0700)]
Generating the verison and other macros on the fly (#39670)

* generating the header on the fly

* add feedback from other pr

* simplify includePath

* address feedbacl

* simplify the includePath code

3 years agoAllow increased log level filtering for event source logger (#40165)
Maryam Ariyan [Mon, 3 Aug 2020 17:54:37 +0000 (10:54 -0700)]
Allow increased log level filtering for event source logger (#40165)

3 years agofix ReceiveMessageFromPacketInfo in DualMode ReceiveMessageFromAsync (#39249)
Tomas Weinfurt [Mon, 3 Aug 2020 17:26:34 +0000 (10:26 -0700)]
fix ReceiveMessageFromPacketInfo in DualMode ReceiveMessageFromAsync (#39249)

* add test

* fix dual mode on windows

* fix linux

* Update src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Windows.cs

3 years agoIsSupported reports SocketsHttpHandler availability on different platforms (#40271)
Alexander Nikolaev [Mon, 3 Aug 2020 16:28:48 +0000 (18:28 +0200)]
IsSupported reports SocketsHttpHandler availability on different platforms (#40271)

Fixes #39489

3 years agoFix nullable annotations for ImmutableArray cast methods (#40084)
Eirik Tsarpalis [Mon, 3 Aug 2020 16:24:09 +0000 (17:24 +0100)]
Fix nullable annotations for ImmutableArray cast methods (#40084)

* Fix nullable annotations for ImmutableArray cast methods,

Fixes #39799

* address feedback

3 years agoFix ICU_CFLAGS in mono configure.ac (#40263)
Alexander Köplinger [Mon, 3 Aug 2020 14:05:00 +0000 (16:05 +0200)]
Fix ICU_CFLAGS in mono configure.ac (#40263)

We need to set these defines so we don't use obsolete ICU functions and cause warnings, just like we do in the CMakeLists.txt version..

3 years agoUpdate dependencies from https://github.com/dotnet/xharness build 20200802.1 (#40256)
dotnet-maestro[bot] [Mon, 3 Aug 2020 12:00:09 +0000 (12:00 +0000)]
Update dependencies from https://github.com/dotnet/xharness build 20200802.1 (#40256)

[master] Update dependencies from dotnet/xharness
- Updates:
  - Microsoft.DotNet.XHarness.CLI: from 1.0.0-prerelease.20380.2 to 1.0.0-prerelease.20402.1
  - Microsoft.DotNet.XHarness.TestRunners.Xunit: from 1.0.0-prerelease.20380.2 to 1.0.0-prerelease.20402.1

3 years ago[wasm] Re-enable some Microsoft.Extensions.Logging.Tests tests on browser-wasm. ...
Maxim Lipnin [Mon, 3 Aug 2020 11:52:12 +0000 (14:52 +0300)]
[wasm] Re-enable some Microsoft.Extensions.Logging.Tests tests on browser-wasm. (#40255)

3 years agoHTTP agnostic loopback server. (#40144)
Marie Píchová [Mon, 3 Aug 2020 11:11:52 +0000 (13:11 +0200)]
HTTP agnostic loopback server. (#40144)

3 years agoAdded variable number for tracking (#39861)
Edward Kazuya Carlson [Sun, 2 Aug 2020 18:04:56 +0000 (11:04 -0700)]
Added variable number for tracking (#39861)

3 years agoAnnotate DependencyInjection to make it linker friendly (#40227)
Eric Erhardt [Sun, 2 Aug 2020 18:01:19 +0000 (13:01 -0500)]
Annotate DependencyInjection to make it linker friendly (#40227)

* Annotate DependencyInjection to make it linker friendly

Fix #39745

3 years agoFix ILLink warnings for removed attributes when Debugger.IsSupported is false (#40048)
Eric Erhardt [Sun, 2 Aug 2020 18:00:21 +0000 (13:00 -0500)]
Fix ILLink warnings for removed attributes when Debugger.IsSupported is false (#40048)

When Debugger.IsSupported feature switch is false, we trim unnecessary attributes in the code - specifically attributes like CompilerGeneratedAttribute and StackTraceHiddenAttribute. However, we still have code accessing these attributes, which causes the ILLinker to warn that it is removing the attributes, but code still uses them.

To fix this, remove these attributes from being trimmed when Debugger.IsSupported is false. Instead these attributes will be preserved always so things like "is anonymous type" checks and stack trace tostring will behave correctly.

Fix #39707

3 years agoRemove netstandard packaging infra (#40239)
Adeel Mujahid [Sun, 2 Aug 2020 17:45:52 +0000 (20:45 +0300)]
Remove netstandard packaging infra (#40239)

3 years agoReenable ExceptionDispatchInfo.SetCurrentStackTrace test on WASM (#40241)
Alexander Köplinger [Sun, 2 Aug 2020 16:13:00 +0000 (18:13 +0200)]
Reenable ExceptionDispatchInfo.SetCurrentStackTrace test on WASM (#40241)

It was fixed by https://github.com/dotnet/runtime/pull/40031.

3 years ago[runtime] Add a configure workaround for apple silicon + older config… (#40184)
monojenkins [Sun, 2 Aug 2020 13:43:05 +0000 (09:43 -0400)]
[runtime] Add a configure workaround for apple silicon + older config… (#40184)

….guess versions.

<!--
Thank you for your Pull Request!

If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.

Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
3 years agoFix typo in comment in StringBuilderCache.cs (#40238)
Joni [Sun, 2 Aug 2020 13:09:35 +0000 (22:09 +0900)]
Fix typo in comment in StringBuilderCache.cs (#40238)

3 years ago[browser] Remove ActiveIssue from BinaryPrimitives_StaticWithSpanArgument (#40235)
Larry Ewing [Sun, 2 Aug 2020 08:07:16 +0000 (03:07 -0500)]
[browser] Remove ActiveIssue from BinaryPrimitives_StaticWithSpanArgument (#40235)