platform/upstream/dotnet/runtime.git
3 years ago[browser][debugger] Clean up MessageId logic to prepare for sessions in the test...
Larry Ewing [Tue, 20 Oct 2020 18:31:33 +0000 (13:31 -0500)]
[browser][debugger] Clean up MessageId logic to prepare for sessions in the test harness (#43188)

* Clean up MessageId logic

* Update src/mono/wasm/debugger/DebuggerTestSuite/InspectorClient.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/mono/wasm/debugger/DebuggerTestSuite/InspectorClient.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
* Update src/mono/wasm/debugger/DebuggerTestSuite/InspectorClient.cs

Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
3 years agoimprove usability of NegotiateStreamInvalidOperationTest (#43622)
Tomas Weinfurt [Tue, 20 Oct 2020 18:04:43 +0000 (11:04 -0700)]
improve usability of  NegotiateStreamInvalidOperationTest (#43622)

3 years ago[System.IO.Compression] ZipHelper.DosTimeToDateTime handle empty LastModified fields...
Sergey Mikolaytis [Tue, 20 Oct 2020 17:37:13 +0000 (20:37 +0300)]
[System.IO.Compression] ZipHelper.DosTimeToDateTime handle empty LastModified fields in zip archive entry header without internal exception (#43008)

* [System.IO.Compression] ZipHelper.DosTimeToDateTime handle empty LastModified field without internal exception to improve debugging performance on several zip files opening asynchronously

* [Test][Compression][ZipArhiveEntry] Add unit test to test empty lastModified field in zip entry

* refactor unit test code

* do not use arraypool in tests

* fix test after azure pipeline checks with errors

* fix invalid assert in new test

3 years ago[iOS] Add mono runtime and AppleAppBuilder pkgproj for iOS sample (#43048)
Mitchell Hwang [Tue, 20 Oct 2020 15:09:35 +0000 (11:09 -0400)]
[iOS] Add mono runtime and AppleAppBuilder pkgproj for iOS sample (#43048)

* Add iOS sample pkgproj

* Add iOS Sample pkgproj to descriptions

* Add iOS sample pkgproj ProjectReference

* Add project reference to build AppleAppBuiler.csproj

* Fixup AppleAppBuilder assembly path

* Add AppleAppBuilder Packaging target

* Remove UI file to allow and encourage sample users to modify the UI

* Move package from dotnet6-transport to dotnet6 feed

Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
3 years agodisable DefaultConnect_EndToEnd_Ok on Windows7 (#43628)
Tomas Weinfurt [Tue, 20 Oct 2020 14:56:31 +0000 (07:56 -0700)]
disable DefaultConnect_EndToEnd_Ok on Windows7 (#43628)

* disable DefaultConnect_EndToEnd_Ok on Windows7

* update platform check

* update platform check

3 years ago[debugger] Switch to GC Unsafe in signal handler callbacks (#43600)
monojenkins [Tue, 20 Oct 2020 14:45:31 +0000 (10:45 -0400)]
[debugger] Switch to GC Unsafe in signal handler callbacks (#43600)

If the runtime gets a single step or breakpoint signal while it is already
running native code for a P/Invoke, it will be in GC Safe mode.  Switch back to
GC Unsafe to run the debugger engine steps.

Addresses https://github.com/mono/mono/issues/20490

Co-authored-by: lambdageek <lambdageek@users.noreply.github.com>
3 years agoadd activity support for android sample (#43504)
Egor Bogatov [Tue, 20 Oct 2020 06:46:15 +0000 (09:46 +0300)]
add activity support for android sample (#43504)

3 years agoAdd CSV map file generation for compiler diagnostics (#43612)
Simon Nattress [Tue, 20 Oct 2020 03:13:49 +0000 (20:13 -0700)]
Add CSV map file generation for compiler diagnostics (#43612)

Add `--csvmap` switch to Crossgen2 which causes it to generate node summary CSV files that are parsable by tests. The intent is to use this for size on disk perf tests so just the node type statistics and individual node map are implemented in CSV files.  We can add section and relocs easily if we think they'll be useful in future.

3 years agoRemove UnsupportedOsPlatform from CryptoConfig as a utility class (#43611)
Larry Ewing [Tue, 20 Oct 2020 00:26:26 +0000 (19:26 -0500)]
Remove UnsupportedOsPlatform from CryptoConfig as a utility class (#43611)

* Remove UnsupportedOsPlatform from CryptoConfig as it is a safe utility class

* Clean up the other references

3 years agoFirst draft of Dynamic Pgo proposal (#43371)
Andy Ayers [Mon, 19 Oct 2020 23:04:54 +0000 (16:04 -0700)]
First draft of Dynamic Pgo proposal (#43371)

First draft of Dynamic Pgo proposal.

3 years agoFix CG2 outerloop comparison runs and OSX leg warning (#43547)
Simon Nattress [Mon, 19 Oct 2020 20:49:43 +0000 (13:49 -0700)]
Fix CG2 outerloop comparison runs and OSX leg warning (#43547)

The outerloop run has OSX checked test runs for CG2 and CG2 composite modes. Currently both would use a log upload artifact with the same name (coreclr__TestRunLogs_R2R_CG2_OSX_x64_checked_outerloop). Disambiguate the two with a different `LogNamePrefix` for composite runs.

The crossgen2 comparison runs are failing to create the baseline crossgen'd framework because the live libraries zip's internal path has changed. .net5 has been replaced with .net6. The build should have failed when we tried to copy from the wrong folder but the error got eaten and we ended up with a malformed framework folder. Adjust the inline yml scripts so if they fail, it will fail that containing build task.

3 years agoJIT: don't inline methods with small stackallocs if the call site is … (#43516)
Andy Ayers [Mon, 19 Oct 2020 19:48:16 +0000 (12:48 -0700)]
JIT: don't inline methods with small stackallocs if the call site is … (#43516)

The logic in `fgInlinePrependStatements` that zero-initializes locals doesn't
kick in for jit temps introduced when small stackallocs are optimized. So if we
inline a method with a small stackalloc into a loop, the memory for the
stackalloc doesn't get properly re-zeroed on each iteration.

Fix by disallowing such inlines by adding an extra check: the call site must
not be in a loop.

Closes #43391.

3 years agoEquals and GetHashCode for Reflection.Pointer (#42547)
Timo [Mon, 19 Oct 2020 19:30:56 +0000 (21:30 +0200)]
Equals and GetHashCode for Reflection.Pointer (#42547)

3 years agoUse NetCorePublic-Pool pool instead of AzDO hosted pool for Browser jobs (#43589)
Alexander Köplinger [Mon, 19 Oct 2020 18:24:05 +0000 (20:24 +0200)]
Use NetCorePublic-Pool pool instead of AzDO hosted pool for Browser jobs (#43589)

The hosted pool runs into no disk space issues.

3 years agoAdd crossBuild parameter to yaml (#43319)
Steve MacLean [Mon, 19 Oct 2020 17:52:29 +0000 (13:52 -0400)]
Add crossBuild parameter to yaml (#43319)

* Add crossBuild parameter to yaml

3 years agoUse Span-based CreateHMAC where possible
Kevin Jones [Mon, 19 Oct 2020 17:40:08 +0000 (13:40 -0400)]
Use Span-based CreateHMAC where possible

3 years agoImprove performance of polymorphism (#42538)
Steve Harter [Mon, 19 Oct 2020 17:19:50 +0000 (12:19 -0500)]
Improve performance of polymorphism (#42538)

3 years agoRefactor NonAscii bit mask usage (#43537)
Eric Erhardt [Mon, 19 Oct 2020 16:38:53 +0000 (11:38 -0500)]
Refactor NonAscii bit mask usage (#43537)

* Refactor NonAscii bit mask usage

The Vector128 type is being left in a Blazor WASM application because Utf8Utility.GetPointerToFirstInvalidByte is always creating one, even though it isn't used.

I refactored the code such that the bit mask is no longer created on platforms it is not used, since it is only being used by Arm64.

3 years agoAdd test to validate precedence of roll-forward and roll-forward-on-no-candidate...
Vitek Karas [Mon, 19 Oct 2020 15:57:38 +0000 (08:57 -0700)]
Add test to validate precedence of roll-forward and roll-forward-on-no-candidate-fx settings (#43510)

The comment on the test documents the desired precedence order.

Moved some of the existing tests which validate the behavior of the two settings together into a new separate test class.

3 years agoFix async iterators to clear out state upon completion (#43522)
Stephen Toub [Sun, 18 Oct 2020 23:10:32 +0000 (19:10 -0400)]
Fix async iterators to clear out state upon completion (#43522)

AsyncIteratorMethodBuilder was only doing its clean-up for completion (e.g. zeroing out the state machine and context, removing the object from a debugger-incited tracking table) if the last call to the iterator was part of asynchronous completion; if the last MoveNextAsync completed synchronously, the used code path could miss that cleanup work.

3 years agoFix TimeZoneInfo to handle Yukon zone (#43550)
Tarek Mahmoud Sayed [Sun, 18 Oct 2020 18:48:57 +0000 (11:48 -0700)]
Fix  TimeZoneInfo to handle Yukon zone (#43550)

3 years agoConvert more interop to use function pointers (#43514)
Jan Kotas [Sat, 17 Oct 2020 17:02:31 +0000 (10:02 -0700)]
Convert more interop to use function pointers (#43514)

3 years agoadd better handling of SECBUFFER_EXTRA during TLS handshake on Windows (#43475)
Tomas Weinfurt [Sat, 17 Oct 2020 17:00:31 +0000 (10:00 -0700)]
add better handling of SECBUFFER_EXTRA during TLS handshake on Windows (#43475)

* add better handling of SECBUFFER_EXTRA during TLS handshake on Windows (#42427)

* add better handling of SECBUFFER_EXTRA during TLS handshake on Windows

* fix boundery check

* fix spelling

* update Authentication_IncorrectServerName_Fail test

* feedback from review

* Update src/libraries/System.Net.Security/tests/FunctionalTests/CertificateValidationRemoteServer.cs

Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years ago[threads] At shutdown, don't wait for native threads that aren't calling Mono (#43174)
monojenkins [Sat, 17 Oct 2020 12:04:40 +0000 (08:04 -0400)]
[threads] At shutdown, don't wait for native threads that aren't calling Mono (#43174)

* [test] Call P/Invoke callback delegates from foreign threads

Change post-detach-1.cs to also have versions that call reverse pinvokes from
foreign threads that were not attached to mono.

The foreign threads should not prevent GC and should not prevent Mono from
shutting down using mono_manage_internal.

* [threads] Don't wait for native threads that aren't calling Mono

If a thread is started from native code, and it interacts with the runtime (by
calling a thunk that invokes a managed method), the runtime will attach the
thread - it will create a `MonoInternalThread` and add it to the list of
threads hash (in threads.c).

If the thread returns from the managed call, it will still be recorded by the
runtime, but as long as it is not running managed code anymore, it will prevent
shutdown.  The problem is when we try to suspend the thread in order to abort
it, `mono_thread_state_init_from_handle` will see a NULL domain (because
`mono_threads_detach_coop_internal` will restore it to NULL when a managed
method returns back to native code).  (On systems using POSIX signals to
suspend, the same check is in `mono_thread_state_init_from_sigctx`).  As a
result, `mono_threads_suspend_begin_async_suspend` (or `suspend_signal_handler`
on POSIX) will set `suspend_can_continue` to FALSE, and
`mono_thread_info_safe_suspend_and_run` will not run the suspend callback.

As a result, when `mono_manage_internal` calls `abort_threads`, it will add the
thread handle to the wait list, but it will not actually request the thread to
abort.  As a result, after `abort_threads` returns, the subsequent call to
`wait_for_tids` will block until the native thread terminates (at which point
the TLS destructor will notify the thread handle and wait_for_tids will
unblock).

This commit changes the behavior of `abort_threads` to ignore threads that do
not run `async_suspend_critical` and not to add them to the wait list.  As a
result, if a native thread calls into managed and then returns to native code,
the runtime will not wait for it.

* [threads] Warn if mono_thread_manage_internal can't abort a thread

Give a hint to embedders to aid debugging

* rename AbortThreadData:thread_will_abort field

It's used to keep track of whether the thread will eventually throw a TAE (and
thus that we need to wait for it).

The issue is that under full coop suspend, we treat threads in GC
Safe (BLOCKING) state as if they're suspended and always execute
async_abort_critical.  So the field has nothing to do with whether the thread
was suscessfully suspended, but rather whether it will (eventually) be aborted.

* [threads] Fix async_abort_critical for full coop

If the foreign external thread doesn't have any managed methods on its
callstack, but it once called a native-to-managed wrapper, it will be left by
mono_threads_detach_coop in GC Safe (BLOCKING) state.  But under full coop, GC
Safe state is considered suspended, so mono_thread_info_safe_suspend_and_run
will run async_abort_critical for the thread.

But the thread may never call into Mono again, in which case it will never
safepoint and aknowledge the abort interruption.  So set thread_will_abort to
FALSE in this case, so that mono_thread_manage_internal won't try to wait for it.

---

Related to an issue first identified in https://github.com/mono/mono/pull/18517

---

This supersedes mono/mono#18656

Co-authored-by: lambdageek <lambdageek@users.noreply.github.com>
3 years ago[master] Update dependencies from dotnet/arcade dotnet/xharness dotnet/llvm-project...
dotnet-maestro[bot] [Sat, 17 Oct 2020 11:30:14 +0000 (13:30 +0200)]
[master] Update dependencies from dotnet/arcade dotnet/xharness dotnet/llvm-project dotnet/icu mono/linker (#43355)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
3 years agoOngoing cmake build work. (#43519)
Zoltan Varga [Sat, 17 Oct 2020 06:53:14 +0000 (02:53 -0400)]
Ongoing cmake build work. (#43519)

* Ongoing cmake build work.

* Fix llvm support when cross compiling
* Fix/enable ios support.

* Add support for amd64->arm/arm64 cross builds on CI.

3 years agotest for 2164 and corert 8246 (#43511)
Sergey Prytkov [Sat, 17 Oct 2020 06:31:03 +0000 (09:31 +0300)]
test for 2164 and corert 8246 (#43511)

3 years agoPort changes from dotnet/runtimelab (#43496)
Jan Kotas [Sat, 17 Oct 2020 06:30:28 +0000 (23:30 -0700)]
Port changes from dotnet/runtimelab (#43496)

- Fix build errors in System.Globalization.Native with libraries/Native warning level, add System.Globalization.Native back to the libraries/Native build to protect it,
- Misc other changes

3 years ago[mono] Ensure MonoAssemblyName is in sync between managed and native (#43536)
Ryan Lucia [Sat, 17 Oct 2020 06:29:37 +0000 (02:29 -0400)]
[mono] Ensure MonoAssemblyName is in sync between managed and native (#43536)

We also no longer appear to need the NETCORE or DISABLE_REMOTING defines in msbuild, so remove them

3 years agoEnable Mono substitutions and attributes exclusion for mobile (#43507)
Marek Safar [Sat, 17 Oct 2020 06:26:07 +0000 (08:26 +0200)]
Enable Mono substitutions and attributes exclusion for mobile (#43507)

3 years agoMake more suitable SPC instance methods static (#43280)
Marek Safar [Sat, 17 Oct 2020 06:23:23 +0000 (08:23 +0200)]
Make more suitable SPC instance methods static (#43280)

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years agoRemove unused Common Extensions code (#43452)
Eric Erhardt [Sat, 17 Oct 2020 03:26:03 +0000 (22:26 -0500)]
Remove unused Common Extensions code (#43452)

3 years agoAdd additional URI schemes (WIP) (#43375)
Patrick Westerhoff [Sat, 17 Oct 2020 02:55:54 +0000 (04:55 +0200)]
Add additional URI schemes (WIP) (#43375)

3 years agoFix nullable warnings in struct constructors (#43472)
Rikki Gibson [Sat, 17 Oct 2020 02:49:41 +0000 (19:49 -0700)]
Fix nullable warnings in struct constructors (#43472)

3 years agoRemove some unnecessary unsafe usage (#43430)
Stephen Toub [Sat, 17 Oct 2020 02:24:20 +0000 (22:24 -0400)]
Remove some unnecessary unsafe usage (#43430)

3 years agoFix xunit analyzers to run on library test projects (#43459)
Stephen Toub [Sat, 17 Oct 2020 02:21:45 +0000 (22:21 -0400)]
Fix xunit analyzers to run on library test projects (#43459)

We don't want most analyzers running over our test code currently (some rules could be enabled with varying degrees of effort), but we do want the xunit analyzers running, and they haven't been.  Fix that by creating a new ruleset specific to library tests, and switching over to use it when building library test projects.

3 years agoPort ACL OpenExisting overloads for EventWaitHandle/Mutex/Semaphore (#43134)
Carlos Sanchez [Sat, 17 Oct 2020 00:12:30 +0000 (17:12 -0700)]
Port ACL OpenExisting overloads for EventWaitHandle/Mutex/Semaphore (#43134)

* Add methods to ref file.

* Add empty methods to src files.

* Add the .NET Framework version of these methods for .NET Standard.

* Move OpenExistingResult enum to Common and consume it where needed.

* Remove Unix comment in Windows-only file.

* Document OpenExistingResult enum.

* Make out result parameters nullable.

* Add exception resource string.

* Imlement EventWaitHandleAcl methods.

* Implement MutexAcl methods.

* Implement SemaphoreAcl methods.

* Remove unnecessary check for null or empty name.

* Document the EventWaitHandleAcl methods.

* Document the MutexAcl methods.

* Document the SemaphoreAcl methods.

* Add negative enum check. Fix incorrect cast.

* Add NotNullWhen attribute to TryOpenExisting out parameter. Adjust docs.

* Add EventWaitHandle basic unit tests.

* Add Semaphore basic unit tests

* Add Mutex basic unit tests.

* Add Mutex exception handling unit tests.

* Add EventWaitHandle exception handling unit tests.

* Add Semaphore exception handling unit tests.

* EventWaitHandle and Mutex throw DirectoryNotFoundException when PathNotFound. Adjust documentation.

* Nullability in ref file.

* Do not check for rights out of range value, let Windows handle it. Adjust unit tests accordingly.

* Spacing.

* Remove enum range test. Add PathNotFound tests.

Co-authored-by: Carlos Sanchez Lopez <carlossanlop@users.noreply.github.com>
3 years agoFix new warnings (#43097)
Buyaa [Fri, 16 Oct 2020 23:39:19 +0000 (16:39 -0700)]
Fix new warnings (#43097)

* Fix CA1416 warnings in runtime repo

3 years agoAdd issues.targets exclusions for Crossgen2 Pri 1 Tests (#43473)
Simon Nattress [Fri, 16 Oct 2020 23:18:03 +0000 (16:18 -0700)]
Add issues.targets exclusions for Crossgen2 Pri 1 Tests (#43473)

This baselines the remaining test failures with GH issues to track for further investigation.

3 years agoadjust renegotiation tests to match product change (#43123)
Tomas Weinfurt [Fri, 16 Oct 2020 21:45:24 +0000 (14:45 -0700)]
adjust renegotiation tests to match product change (#43123)

* adjust renegotiation tests to match product change

* add assert for validationCount

3 years agoJIT: some small profile related fixes (#43408)
Andy Ayers [Fri, 16 Oct 2020 18:33:33 +0000 (11:33 -0700)]
JIT: some small profile related fixes (#43408)

1. If we're inheriting a fraction of the profile weight of a profiled block,
mark the inheriting block as profiled. This prevents methods like
`optSetBlockWeights` or `optMarkLoopBlocks` from coming along later and setting
the weights to something else. Since the full inheritance method has similar
logic, make it delegate to the fractional one, with a scale of 100 (no scaling).

2. If we switch from Tier0 to FullOpt, make sure to clear the BBINSTR flag,
else we'll put probes into optimized code.

3. Dump edge weights in the dot graph, if we have them.

4. Only dump the flow graph twice per phase.

3 years agoModify System.Net.HttpListener to throw PNSE at assembly level on browser (#43401)
Maxim Lipnin [Fri, 16 Oct 2020 17:56:47 +0000 (20:56 +0300)]
Modify System.Net.HttpListener to throw PNSE at assembly level on browser (#43401)

3 years agoRemove unused Unix PKCS12 shims
Kevin Jones [Fri, 16 Oct 2020 16:49:03 +0000 (12:49 -0400)]
Remove unused Unix PKCS12 shims

Because the PKCS#12/PFX import is now done with managed code, the PKCS12 shim was dead code.

3 years agoFix two tests for runincontext testing (#43457)
Jan Vorlicek [Fri, 16 Oct 2020 15:52:02 +0000 (17:52 +0200)]
Fix two tests for runincontext testing (#43457)

* Disable two tests for runincontext testing

These tests are not compatible with running using the runincontext tool.

* Reflect PR feedback - make the test work instead

3 years agoJIT: ensure bbflags get treated as 64 bit literals (#43451)
Andy Ayers [Fri, 16 Oct 2020 02:37:45 +0000 (19:37 -0700)]
JIT: ensure bbflags get treated as 64 bit literals (#43451)

Expressions like `~(BBF_KEEP_BBJ_ALWAYS)` were being evaluated as 32 bit signed
quantities, leading to mask value `00000000_7FFFFFFFF` instead of the desired
`FFFFFFFF_7FFFFFFFF`, causing inadvertent clearing of flags with higher value.

SPMI diffs showed the only flag loss that impacted codegen was `BBF_HAS_CALL`,
which feeds into the CSE heuristics. So no known correctness issue, but it is
certainly possible to also lose `BBF_DOMINATED_BY_EXCEPTIONAL_ENTRY` or
`BBF_HAS_SUPPRESSGC_CALL` and that may be more serious.

3 years agoDelete superfluous suffix
Jan Kotas [Fri, 16 Oct 2020 01:35:29 +0000 (18:35 -0700)]
Delete superfluous suffix

3 years agoAdd back nightly build table (#43392)
Juan Hoyos [Fri, 16 Oct 2020 01:06:40 +0000 (18:06 -0700)]
Add back nightly build table (#43392)

* Update README table generator.
* Link README to new table location.
* Add 6.0 coreclr runtime links for table generation.
* Add generated table to the dogfooding page.
* Update some stale references to sleet feeds, older versions of the runtime, and deprecated packages.
* Add subset for table generation and reorder table to frontload OS groups.

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
3 years agoAdd a makefile sample to run test-browser (#43382)
Larry Ewing [Thu, 15 Oct 2020 19:54:41 +0000 (14:54 -0500)]
Add a makefile sample to run test-browser (#43382)

3 years ago[debugger][wasm] Implement Debugger.IsAttached on wasm (#42532)
Thays Grazia [Thu, 15 Oct 2020 19:28:58 +0000 (16:28 -0300)]
[debugger][wasm] Implement Debugger.IsAttached on wasm (#42532)

* Debugger.IsAttached is now working on wasm. And can be used to detect if debugger is attached.
Fix #42411

* Update src/mono/wasm/runtime/library_mono.js

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
* Using the infrastructure to not send dynamically loaded assemblies if debugger is not attached.
Changing where to check if the assembly is already added to avoid unnecessary checks.

* Checking the assembly name size.

Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
3 years agoDelete CoreDllMain, remove DLL_THREAD_DETACH from EEDllMain, just rely on thread...
Vladimir Sadov [Thu, 15 Oct 2020 18:42:51 +0000 (11:42 -0700)]
Delete CoreDllMain, remove DLL_THREAD_DETACH from EEDllMain, just rely on thread local destructor (#43423)

3 years agoFix runincontext testing (#43446)
Jan Vorlicek [Thu, 15 Oct 2020 18:31:35 +0000 (20:31 +0200)]
Fix runincontext testing (#43446)

After some recent shuffles of tests location, running the coreclr tests
with runincontext option stopped working. This change fixes it by fixing
the script path in the run.py.

3 years agoRevert "add better handling of SECBUFFER_EXTRA during TLS handshake on Windows (...
Stephen Toub [Thu, 15 Oct 2020 15:50:13 +0000 (11:50 -0400)]
Revert "add better handling of SECBUFFER_EXTRA during TLS handshake on Windows (#42427)" (#43442)

This reverts commit 51f6b8bd3a2a38c432b1cd1f7c465c256f5f699c.

3 years ago[runtime] Add an options API. (#32595)
monojenkins [Thu, 15 Oct 2020 15:25:38 +0000 (11:25 -0400)]
[runtime] Add an options API. (#32595)

* [runtime] Add an options API.

Add a general options API to the runtime, based on the flags API in Google V8:

```https://chromium.googlesource.com/v8/v8.git/+/refs/heads/master/src/flags/```

Supported features:
* Definition of runtime options in a declarative way.
* Options are mapped to C globals.
* BOOL/INT/STRING data types.
* Generic option parsing code.
* Generic usage code.
* Read-only flags for build-time optimization.

This is designed to replace the many option parsing functions in
the runtime, MONO_DEBUG, the many mono_set_... functions etc.

* Fix the build.

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
3 years agoAdd w32subset.h into monoutils_sources. (#43435)
monojenkins [Thu, 15 Oct 2020 15:11:27 +0000 (11:11 -0400)]
Add w32subset.h into monoutils_sources. (#43435)

Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
3 years agoBind byte array from base64 config value (#43150)
Thomas Levesque [Thu, 15 Oct 2020 14:33:14 +0000 (16:33 +0200)]
Bind byte array from base64 config value (#43150)

* Bind byte array from base64 config value

* Add test case for failure

* Add test for null case

* Remove unnecessary null check

Co-authored-by: Thomas Levesque <thomaslevesque@users.noreply.github.com>
3 years agoRemove some unsafe code from Console (#43368)
Eirik Tsarpalis [Thu, 15 Oct 2020 14:04:16 +0000 (15:04 +0100)]
Remove some unsafe code from Console (#43368)

* Remove some unsafe code from Console

* preserve original byte-by-byte decoding

* remove unsafe declaration where not needed

Co-authored-by: Stephen Toub <stoub@microsoft.com>
3 years ago[mono] Include hostpolicy/hostfxr in mono desktop runtime packs (#42729)
Egor Bogatov [Thu, 15 Oct 2020 13:51:21 +0000 (16:51 +0300)]
[mono] Include hostpolicy/hostfxr in mono desktop runtime packs (#42729)

Currently mono desktop runtime packs don't include `libhostfxr.*` and `libhostpolicy*` libs needed for corehost in self contained mode.

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoAdd MetadataToken getter override to builder classes (#43330)
Steve Harter [Thu, 15 Oct 2020 13:35:52 +0000 (08:35 -0500)]
Add MetadataToken getter override to builder classes (#43330)

3 years agoClean up DependencyModel Json read/write (#43376)
Eric Erhardt [Thu, 15 Oct 2020 13:07:39 +0000 (08:07 -0500)]
Clean up DependencyModel Json read/write (#43376)

* Clean up DependencyContextWriter

- Remove UnifiedJsonWriter
- Remove ArrayBufferWriter and write to the Stream directly

* Clean up DependencyContextJsonReader

- Remove UnifiedJsonReader
- Move any reader logic to extension methods

3 years agoFix StaticTestGenerator (#43432)
Stephen Toub [Thu, 15 Oct 2020 12:42:27 +0000 (08:42 -0400)]
Fix StaticTestGenerator (#43432)

It's rotted a bit.

3 years ago[browser][crypto] Remove restraining not supported attribute Primitives (#43387)
Kenneth Pouncey [Thu, 15 Oct 2020 11:55:01 +0000 (13:55 +0200)]
[browser][crypto] Remove restraining not supported attribute Primitives (#43387)

* [browser][crypto] Remove restraining not supported attribute

- The modules included within the System.Security.Cryptography.Primitives module should still be available for use outside of browser os.

* Address review comments.  Remove `<IncludePlatformAttributes>` attribute as well

3 years agoFix the android cmake build. (#43421)
Zoltan Varga [Thu, 15 Oct 2020 02:59:15 +0000 (22:59 -0400)]
Fix the android cmake build. (#43421)

3 years agoRemove unsafe code from System.Web.HttpUtility (#43422)
Levi Broderick [Thu, 15 Oct 2020 01:30:04 +0000 (18:30 -0700)]
Remove unsafe code from System.Web.HttpUtility (#43422)

3 years agoArm32 Crossgen2 initial support (#43243)
David Wrighton [Thu, 15 Oct 2020 00:13:50 +0000 (17:13 -0700)]
Arm32 Crossgen2 initial support (#43243)

- Fix type layout bugs
  - Sequential or Explicit layout classes without explicit field offsets on arm32 should align their fields based on the start of the field list of the object
  - The field base offset used for R2R calculation on Arm32 should respect the RequiresAlign8 flag
  - Computing true for requiresAlign8 in auto field layout should set the alignment of a class to 8 during auto layout
  - if a class derives from an type which requires 8 byte alignment, set the derived to require higher alignment
- Align the EH info table on 4 byte boundaries
- Set the thumb bit on the arm32 personality routine RVA in XData
- Enable Crossgen2 smoke test for arm
- Adjust architecture specific type layout tests to match CoreCLR behavior
- Fix alignment of Export functions within PE file

3 years ago[.NET 5.0] Add support for libicu67 and several more higher versions (#43420)
Nikola Milosavljevic [Wed, 14 Oct 2020 23:40:36 +0000 (16:40 -0700)]
[.NET 5.0] Add support for libicu67 and several more higher versions (#43420)

* Add support for libicu67

* Add libicu68

* Adding libicu versions 69 to 72

3 years agoAdd TargetOS=Android back into the sample run. This caused TargetsMobile not to...
Steve Pfister [Wed, 14 Oct 2020 21:38:08 +0000 (17:38 -0400)]
Add TargetOS=Android back into the sample run.  This caused TargetsMobile not to be set (#43394)

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
3 years agoImplemented clock_gettime_nsec_np in libraries for Apple Silicon support (#43343)
Jeremy Sinclair [Wed, 14 Oct 2020 21:22:37 +0000 (17:22 -0400)]
Implemented clock_gettime_nsec_np in libraries for Apple Silicon support (#43343)

* Replaced mach_absolute_time instances with clock_gettime_nsec_np

* Removed GetTimestampResolution method and replaced with 10^9

3 years agoImprove ArrayBufferWriter re-alloc perf when size is > int.MaxSize / 2 (#42950)
Steve Harter [Wed, 14 Oct 2020 19:55:42 +0000 (14:55 -0500)]
Improve ArrayBufferWriter re-alloc perf when size is > int.MaxSize / 2 (#42950)

3 years agoDisable NamedPipeTests CurrentUserOnly on server core (#43381)
Santiago Fernandez Madero [Wed, 14 Oct 2020 19:43:15 +0000 (12:43 -0700)]
Disable NamedPipeTests CurrentUserOnly on server core (#43381)

3 years agoClean up CG2 section in issues.targets by removing closed issues (#43055)
Tomáš Rylek [Wed, 14 Oct 2020 19:32:29 +0000 (21:32 +0200)]
Clean up CG2 section in issues.targets by removing closed issues (#43055)

3 years agoadd better handling of SECBUFFER_EXTRA during TLS handshake on Windows (#42427)
Tomas Weinfurt [Wed, 14 Oct 2020 18:17:12 +0000 (11:17 -0700)]
add better handling of SECBUFFER_EXTRA during TLS handshake on Windows (#42427)

* add better handling of SECBUFFER_EXTRA during TLS handshake on Windows

* fix boundery check

* fix spelling

3 years agoAddress PR feedback from #42578 (#43362)
Eric Erhardt [Wed, 14 Oct 2020 15:51:08 +0000 (10:51 -0500)]
Address PR feedback from #42578 (#43362)

3 years agoValidate input string passed to LogValuesFormatter (#43238)
Eugene Shcherbo [Wed, 14 Oct 2020 15:26:04 +0000 (18:26 +0300)]
Validate input string passed to LogValuesFormatter (#43238)

Add validation of a format string passed to LogValuesFormatter
to throw `ArgumentNullException` if the string is `null`
so that all the methods of the `LogMessage.Define` group
depending on that class doesn't throw `NullReferenceException`
when configuring a logger.

Fix #36565

3 years agoAdd ReadOnlySpan<char> overloads to JsonSerializer.Deserialize (#41957)
Huo Yaoyuan [Wed, 14 Oct 2020 15:19:24 +0000 (23:19 +0800)]
Add ReadOnlySpan<char> overloads to JsonSerializer.Deserialize (#41957)

* Add char span overloads to JsonSerializer.Deserialize.

* Add new methods to ref source.

* Fix ambiguous call in test.

* Fix documentation issue.

* Guard and test for empty span.

* Add span in deserialization test wrapper.

* Apply doc suggestions

Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
* Treat default span as empty, and cover returnType in test.

* Apply doc suggestions

Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Add exception doc for null returnType.

Co-authored-by: Layomi Akinrinade <layomia@gmail.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
3 years agoRemoved unnecessary WINHTTPHANDLER_DLL compiler constant. (#43393)
Marie Píchová [Wed, 14 Oct 2020 15:05:55 +0000 (17:05 +0200)]
Removed unnecessary WINHTTPHANDLER_DLL compiler constant. (#43393)

3 years agoOptimize the Linguistic String Search Operations (#43065)
Tarek Mahmoud Sayed [Wed, 14 Oct 2020 13:46:37 +0000 (06:46 -0700)]
Optimize the Linguistic String Search Operations (#43065)

3 years agoFix aot compiler execute_system on all HOST_WIN32. (#43358)
monojenkins [Wed, 14 Oct 2020 09:18:26 +0000 (05:18 -0400)]
Fix aot compiler execute_system on all HOST_WIN32. (#43358)

HAVE_SYSTEM is not defined on all HOST_WIN32 where building the AOT compiler makes sense (like cygwin). Make sure this works on all HOST_WIN32 independent of HAVE_SYSTEM.

Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
3 years agoAdd mprof-report.exe into msvc build. (#43220)
monojenkins [Wed, 14 Oct 2020 06:55:45 +0000 (02:55 -0400)]
Add mprof-report.exe into msvc build. (#43220)

Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
3 years agoReplace ReusableTextReader with shared ArrayPool (#43365)
Adeel Mujahid [Wed, 14 Oct 2020 04:24:02 +0000 (07:24 +0300)]
Replace ReusableTextReader with shared ArrayPool (#43365)

3 years agouse globalThis instead of varying global scope names (#43266)
Larry Ewing [Wed, 14 Oct 2020 04:10:55 +0000 (23:10 -0500)]
use globalThis instead of varying global scope names (#43266)

3 years agoAdd back the full config string for mono runs (#43309)
Drew Scoggins [Wed, 14 Oct 2020 00:49:04 +0000 (17:49 -0700)]
Add back the full config string for mono runs (#43309)

3 years agoFixes failures in the diagnostics MacOS createdump testing (#43364)
Mike McLaughlin [Tue, 13 Oct 2020 22:38:19 +0000 (15:38 -0700)]
Fixes failures in the diagnostics MacOS createdump testing  (#43364)

Fixes failures in the diagnostics MacOS createdump testing

The triage or heap MacOS coredumps generated with createdump can have the managed assembly
PE headers missing because they are artifically added to the module list but the header
may not end up in the coredump (except for full dumps).

The fix is to explicitly add the first page of the assemblies in ReplaceModuleMapping.
 ReadProcessMemory returns properly returns partial reads successfully

ReadProcessMemory casting changes

DataTarget::ReadVirtual tracing on error

Replace vm_read with ReadProcessMemory temp

Apply same fixes to PAL_ReadProcessMemory

Add check to native unwind to limit endless loop issue (https://github.com/dotnet/runtime/issues/42980)

3 years agoDelete a few rudiments (#43069)
Sergey Andreenko [Tue, 13 Oct 2020 21:26:04 +0000 (14:26 -0700)]
Delete a few rudiments (#43069)

* Delete `compRegSetCheckLevel`.

* Delete an old workaround for an old Jit.

3 years agoRemove MetadataLoadContext dependency from AndroidAppBuilder (#43339)
Steve Pfister [Tue, 13 Oct 2020 20:21:41 +0000 (16:21 -0400)]
Remove MetadataLoadContext dependency from AndroidAppBuilder (#43339)

This will allow AndroidAppBuilder to be packaged without having unnecessary dependencies.

3 years agoFix the android build. (#43369)
Zoltan Varga [Tue, 13 Oct 2020 19:43:43 +0000 (15:43 -0400)]
Fix the android build. (#43369)

3 years agoChange default FeedbackSize for TripleDES internal implementation
Kevin Jones [Tue, 13 Oct 2020 19:11:46 +0000 (15:11 -0400)]
Change default FeedbackSize for TripleDES internal implementation

In .NET Framework, TripleDESCryptoServiceProvider defaults to a feedback
size of 8, and TripleDESCng defaults to a feedback size of 64. The
static Create by default would return TripleDESCryptoServiceProvider,
thus the TripleDES from Create would have a default feedback size of 8.

This changes the default sizes of TripleDES to behave more
similarly to .NET Framework to make porting CFB code from Framework
easier.

The internal 3DES implementation (and thus
TripleDESCryptoServiceProvider, since that is a wrapper around the
internal implementation) now defaults to a feedback size of 8.
TripleDESCng and user-derived classes from TripleDES will continue to
use a feedback size of 64.

3 years agoAdd osx/arm64 build support. (#43354)
Zoltan Varga [Tue, 13 Oct 2020 18:42:36 +0000 (14:42 -0400)]
Add osx/arm64 build support. (#43354)

* Add osx/arm64 build support.

* Update src/mono/Directory.Build.props

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
3 years agoFix PAL test threading/WaitForMultipleObjectsEx/test2 (#43356)
Jan Vorlicek [Tue, 13 Oct 2020 18:21:57 +0000 (20:21 +0200)]
Fix PAL test threading/WaitForMultipleObjectsEx/test2 (#43356)

This test was failing intermittently in the CI and I've been able
to reproduce the failure locally too in about 1 out of 2000 runs.
The problem was an incorrectly reverse subtraction in a condition
checking if the time after which a wait for interrupted by
APC matched the expected time with some tolerance.

3 years agoFix WinHttpHandler outerloop tests for deflate (#43305)
Stephen Toub [Tue, 13 Oct 2020 17:58:22 +0000 (13:58 -0400)]
Fix WinHttpHandler outerloop tests for deflate (#43305)

3 years ago[mono] Turn methods with no instance access to static (#43228)
Marek Safar [Tue, 13 Oct 2020 17:37:07 +0000 (19:37 +0200)]
[mono] Turn methods with no instance access to static (#43228)

* [mono] Turn methods with no instance access to static

* Review feedback

3 years agoFaster Dictionary clone (#41944)
Ben Adams [Tue, 13 Oct 2020 16:33:39 +0000 (17:33 +0100)]
Faster Dictionary clone (#41944)

3 years agoFix stack overflow in BsdIPGlobalProperties (#43294)
mafo23 [Tue, 13 Oct 2020 16:24:43 +0000 (03:24 +1100)]
Fix stack overflow in BsdIPGlobalProperties (#43294)

Both the GetTcpConnections and GetActiveUdpListeners functions were
using stackalloc on unbounded arrays. As the objects in these arrays
are quite large, removed the stackalloc so the arrays are always on
the heap.

Fix #43286

3 years agoUnsafe code replaced by ReadOnlyMemory<> equivalent (#43214)
Yoh Deadfall [Tue, 13 Oct 2020 15:55:23 +0000 (18:55 +0300)]
Unsafe code replaced by ReadOnlyMemory<> equivalent (#43214)

* Unsafe code replaced by ReadOnlyMemory<> equivalent

* Returned back Length property

* Replaced StringOrCharArray by ReadOnlyMemory and comparer

* Addressed review

3 years agoUse unbounded connected streams in System.Net.Security tests (#43327)
Stephen Toub [Tue, 13 Oct 2020 15:15:06 +0000 (11:15 -0400)]
Use unbounded connected streams in System.Net.Security tests (#43327)

Recently there's been a rash of sporadic timeouts/hangs in System.Net.Security tests.  I don't _think_ it's related to hitting the maximum buffer size in ConnectedStreams (e.g. if the test is written in a way that it assumes a write will always complete synchronously and won't proceed to read until it does), but I'm removing the bound to see if that helps.  We can put it back later if desired: it's not what the tests are validating, and previous to my ConnectedStream change there was no bound, either.

3 years agoAdditional fixes to Windows log profiler. (#43170)
monojenkins [Tue, 13 Oct 2020 14:46:45 +0000 (10:46 -0400)]
Additional fixes to Windows log profiler. (#43170)

* Disable popen/pclose.
* Disable reporting using |mprof-report on Windows due to limited piping support.
* Switch to inet_pton instead of deprecated inet_addr.
* Fix Windows socket server since FD is handle and can be bigger than FD_SETSIZE.

Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
3 years agoBuild armv7+armv7s for ios. (#43350)
Zoltan Varga [Tue, 13 Oct 2020 13:35:36 +0000 (09:35 -0400)]
Build armv7+armv7s for ios. (#43350)

3 years agoFix ArrayList.GetRange().GetRange().ToArray() (#43223)
Stephen Toub [Tue, 13 Oct 2020 13:18:30 +0000 (09:18 -0400)]
Fix ArrayList.GetRange().GetRange().ToArray() (#43223)

The range created by the second GetRange call has an empty _items array that should be ignored, but ToArray on it was trying to copy from that _items directly rather than going through the source's CopyTo method.

3 years agomake AsyncFlowControl implement IEquatable<AsyncFlowControl> (#43232)
hrrrrustic [Tue, 13 Oct 2020 13:00:34 +0000 (09:00 -0400)]
make AsyncFlowControl implement IEquatable<AsyncFlowControl> (#43232)

* make AsyncFlowControl implement IEquatable<AsyncFlowControl>, fixes #31996

* remove test

* remove extra space

3 years agoRemove EBS.Never from CipherMode.CFB. (#43310)
Kevin Jones [Tue, 13 Oct 2020 12:53:13 +0000 (08:53 -0400)]
Remove EBS.Never from CipherMode.CFB. (#43310)

This was removed from src/ but ref/ was not updated to match.

3 years agoAllow passing entrypoint assembly to Android test app (#43333)
Alexander Köplinger [Tue, 13 Oct 2020 12:33:36 +0000 (14:33 +0200)]
Allow passing entrypoint assembly to Android test app (#43333)

This allows packaging multiple assemblies with an entrypoint into the same app and select which one to run by passing an argument via adb/xharness.
Includes xharness bump for getting the expected exit code feature: https://github.com/dotnet/xharness/pull/331