Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[wasm][aot] Uncaught errors in System.Runtime.Tests #74302

Closed
radical opened this issue Aug 20, 2022 · 18 comments
Closed

[wasm][aot] Uncaught errors in System.Runtime.Tests #74302

radical opened this issue Aug 20, 2022 · 18 comments
Assignees
Labels
arch-wasm WebAssembly architecture area-VM-meta-mono test-failure wasm-aot-test WebAssembly AOT Test
Milestone

Comments

@radical
Copy link
Member

radical commented Aug 20, 2022

Build, and log:

info: Discovering: System.Runtime.Tests.dll (method display = ClassAndMethod, method display options = None)
info: Discovered:  System.Runtime.Tests.dll (found 8909 of 9059 test cases)
info: Using random seed for test cases: 867690635
info: Using random seed for collections: 867690635
info: Starting:    System.Runtime.Tests.dll
fail: 143503392
fail: 143503392
fail: 143503392
fail: 143503392
info: WASM EXIT 1
info: Waiting to flush log messages with a timeout of 120 secs ..
fail: Application has finished with exit code TESTS_FAILED but 0 was expected
fail: [out of order message from the browser]: http://127.0.0.1:49190/test-main.js 342:0 Uncaught (in promise)
fail: [out of order message from the browser]: http://127.0.0.1:49190/dotnet.js 1882:6 Uncaught
XHarness exit code: 71 (GENERAL_FAILURE)

This is when building [wasm] Unwrap exception when calling entrypoint (#74235) on main.
/cc @maraf @pavelsavara

@radical radical added arch-wasm WebAssembly architecture blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' area-VM-meta-mono wasm-aot-test WebAssembly AOT Test labels Aug 20, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Aug 20, 2022
@ghost
Copy link

ghost commented Aug 20, 2022

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

Build, and log:

info: Discovering: System.Runtime.Tests.dll (method display = ClassAndMethod, method display options = None)
info: Discovered:  System.Runtime.Tests.dll (found 8909 of 9059 test cases)
info: Using random seed for test cases: 867690635
info: Using random seed for collections: 867690635
info: Starting:    System.Runtime.Tests.dll
fail: 143503392
fail: 143503392
fail: 143503392
fail: 143503392
info: WASM EXIT 1
info: Waiting to flush log messages with a timeout of 120 secs ..
fail: Application has finished with exit code TESTS_FAILED but 0 was expected
fail: [out of order message from the browser]: http://127.0.0.1:49190/test-main.js 342:0 Uncaught (in promise)
fail: [out of order message from the browser]: http://127.0.0.1:49190/dotnet.js 1882:6 Uncaught
XHarness exit code: 71 (GENERAL_FAILURE)

This is when building [wasm] Unwrap exception when calling entrypoint (#74235) on main.
/cc @maraf @pavelsavara

Author: radical
Assignees: -
Labels:

arch-wasm, blocking-clean-ci, area-VM-meta-mono, wasm-aot-test

Milestone: -

@lewing lewing removed the untriaged New issue has not been triaged by the area owner label Aug 22, 2022
@lewing lewing added this to the 8.0.0 milestone Aug 22, 2022
@pavelsavara pavelsavara self-assigned this Aug 22, 2022
@pavelsavara
Copy link
Member

This seems that there is throw 143503392 which is probably pointer ? Do we know what could throw like this ?

@pavelsavara
Copy link
Member

Could this be

function ___cxa_throw(ptr, type, destructor) {
      ...
      throw ptr;

@pavelsavara
Copy link
Member

@vargaz do you have any ideas ? Thanks!

@pavelsavara pavelsavara removed their assignment Sep 1, 2022
@carlossanlop
Copy link
Member

@pavelsavara @radical @vargaz I am seeing this failure in this 7.0 backport PR: #74971

Can you please determine if this is something that needs a fix to get backported to 7.0?

From console.f9376408.log in the artifacts:

[02:06:01] info: Starting:    System.Runtime.Tests.dll
[02:06:57] info: /datadisks/disk1/work/BAC30A50/w/AD8509D5/e/wasm_build/AppBundle/dotnet.js:1883: 138656096
[02:06:57] info:       throw ptr;

The wasm-console.log file in the artifacts seems to tell that the execution suddenly crashed (I would've expected a summary at the end, not an abrupt stop):

[PASS] System.Tests.RealFormatterTests.TestFormatterDouble_P20(value: 65747.125, expectedResult: "6,574,712.50000000000000000000 %")
[PASS] System.Tests.RealFormatterTests.TestFormatterDouble_P20(value: 1844674407370955.2, expectedResult: "184,467,440,737,095,525.00000000000000000000 %")
/datadisks/disk1/work/BAC30A50/w/AD8509D5/e/wasm_build/AppBundle/dotnet.js:1883: 138656096
      throw ptr;
      ^

@radical
Copy link
Member Author

radical commented Sep 2, 2022

It happens on main too, and it's not fixed yet.

@radical
Copy link
Member Author

radical commented Sep 11, 2022

Rolling build for 7.0, and log:

[20:25:44] info: Using random seed for test cases: 2136378125
[20:25:44] info: Using random seed for collections: 2136378125
[20:25:44] info: Starting:    System.Collections.Tests.dll
[20:27:01] fail: 737314736
[20:27:01] fail: 737314736
[20:27:01] fail: 737314736
[20:27:01] fail: 737314736
[20:27:01] info: WASM EXIT 1
[20:27:01] info: Waiting to flush log messages with a timeout of 120 secs ..
[20:27:02] fail: Application has finished with exit code TESTS_FAILED but 0 was expected
[20:27:02] fail: [out of order message from the browser]: http://127.0.0.1:49189/test-main.js 342:0 Uncaught (in promise)
[20:27:02] fail: [out of order message from the browser]: http://127.0.0.1:49189/dotnet.js 1882:6 Uncaught
XHarness exit code: 71 (GENERAL_FAILURE)

@pavelsavara
Copy link
Member

I can reproduce it on my machine. It takes ~60 attempts to get one failure. I'm trying to capture better trace now.

@pavelsavara
Copy link
Member

This is example when throw ptr worked just fine. I guess because wasm-function mono_llvm_cpp_catch_exception was on the stack.

exceptionLastInfo 210474704 19896236 0 Error
___cxa_throw (dotnet.js:1978:74)
mono_llvm_cpp_throw_exception (wasm://wasm/204a75de:wasm-function[291239]:0x43c4680)
mini_llvmonly_throw_exception (wasm://wasm/204a75de:wasm-function[308473]:0x459effe)
corlib_System_RuntimeType_get_GenericParameterPosition (wasm://wasm/204a75de:wasm-function[114673]:0x18774bb)
System_Runtime_Tests_System_Tests_Types_TypePropertyTestBase__GenericParameterPosition_Get_ReturnsExpectedb__83_0 (wasm://wasm/204a75de:wasm-function[222795]:0x324c2fd)
corlib_wrapper_delegate_invoke_System_Func_1_TResult_REF_invoke_TResult (wasm://wasm/204a75de:wasm-function[147115]:0x1da087c)
invoke_iii (dotnet.js:9495:42)
xunit_assert_Xunit_Assert_RecordException_System_Func_1_object (wasm://wasm/204a75de:wasm-function[281013]:0x41871b4)
xunit_assert_Xunit_Assert_Throws_T_REF_System_Func_1_object (wasm://wasm/204a75de:wasm-function[281012]:0x4187066)
System_Runtime_Tests_System_Tests_Types_TypePropertyTestBase_GenericParameterPosition_Get_ReturnsExpected (wasm://wasm/204a75de:wasm-function[222762]:0x324a3a9)
corlib_aot_wrapper_gsharedvt_out_sig_pinvoke_void_this_ (wasm://wasm/204a75de:wasm-function[152905]:0x1ec6053)
jit_call_cb (wasm://wasm/204a75de:wasm-function[290739]:0x43a3fc1)
invoke_vi (dotnet.js:9572:35)
mono_llvm_cpp_catch_exception (wasm://wasm/204a75de:wasm-function[291240]:0x43c469f)
do_jit_call (wasm://wasm/204a75de:wasm-function[290686]:0x43a2d95)
interp_exec_method (wasm://wasm/204a75de:wasm-function[290612]:0x4395262)
interp_runtime_invoke (wasm://wasm/204a75de:wasm-function[290611]:0x4393db1)
mono_jit_runtime_invoke (wasm://wasm/204a75de:wasm-function[308057]:0x458e20f)
do_runtime_invoke (wasm://wasm/204a75de:wasm-function[295834]:0x443b2a5)
mono_runtime_invoke_checked (wasm://wasm/204a75de:wasm-function[295832]:0x443b24d)
mono_runtime_try_invoke_span (wasm://wasm/204a75de:wasm-function[295995]:0x443f92d)
mono_runtime_invoke_span_checked (wasm://wasm/204a75de:wasm-function[295996]:0x443fb86)
ves_icall_InternalInvoke (wasm://wasm/204a75de:wasm-function[294509]:0x4415680)
ves_icall_InternalInvoke_raw (wasm://wasm/204a75de:wasm-function[294724]:0x441c3ed)
aot_wrapper_corlib_System_dot_Reflection_System_dot_Reflection_dot_RuntimeMethodInfo__InternalInvoke_pinvoke_obj_this_objbcls17_Span_601_3cobject_3e_26__attrs_1bclsc_Exception_26__attrs_2obj_cls1d_Reflection_dRuntimeMethodInfo_objbcls17_Span_601_3cobject_3e_26__attrs_1bclsc_Exception_26__attrs_2 (wasm://wasm/204a75de:wasm-function[134575]:0x1b3c8f1)
invoke_iiiiii (dotnet.js:9561:42)
corlib_System_Reflection_MethodInvoker_InterpretedInvoke_object_System_Span_1_object_System_Reflection_BindingFlags (wasm://wasm/204a75de:wasm-function[136506]:0x1b7929a)

...

@vargaz
Copy link
Contributor

vargaz commented Sep 13, 2022

Does it only fail when run from the browser ?

@pavelsavara
Copy link
Member

This one is V8 @vargaz

@pavelsavara
Copy link
Member

This is stack trace when the mono_llvm_cpp_catch_exception is missing on V8 Windows

Using random seed for test cases: 1151537649
Using random seed for collections: 1151537649
Starting:    System.Runtime.Tests.dll
WASM EXIT 1
quit3_
exceptionLast 130410104
exceptionLastInfo 130410104 19896236 0 Error
    at ___cxa_throw (C:/Dev/runtime2/artifacts/bin/System.Runtime.Tests/Release/net7.0-browser/browser-wasm/AppBundle/dotnet.js:1988:74)
    at mono_llvm_cpp_throw_exception (wasm://wasm/204a75de:wasm-function[291239]:0x43c4680)
    at interp_runtime_invoke (wasm://wasm/204a75de:wasm-function[290611]:0x4393dd6)
    at mono_jit_runtime_invoke (wasm://wasm/204a75de:wasm-function[308057]:0x458e20f)
    at do_runtime_invoke (wasm://wasm/204a75de:wasm-function[295834]:0x443b2a5)
    at mono_runtime_try_invoke (wasm://wasm/204a75de:wasm-function[295845]:0x443b9c5)
    at mono_runtime_invoke (wasm://wasm/204a75de:wasm-function[295924]:0x443da8c)
    at mono_wasm_invoke_method_bound (wasm://wasm/204a75de:wasm-function[310012]:0x45d2fd9)
    at Module._mono_wasm_invoke_method_bound [as mono_wasm_invoke_method_bound] (C:/Dev/runtime2/artifacts/bin/System.Runtime.Tests/Release/net7.0-browser/browser-wasm/AppBundle/dotnet.js:8153:141)
    at ei (C:/Dev/runtime2/artifacts/bin/System.Runtime.Tests/Release/net7.0-browser/browser-wasm/AppBundle/dotnet.js:9:61953)
    at y.javaScriptExports.call_entry_point (C:/Dev/runtime2/artifacts/bin/System.Runtime.Tests/Release/net7.0-browser/browser-wasm/AppBundle/dotnet.js:9:64998)
    at Object.Me [as runMain] (C:/Dev/runtime2/artifacts/bin/System.Runtime.Tests/Release/net7.0-browser/browser-wasm/AppBundle/dotnet.js:9:3132)
    at run (test-main.js:331:50)
130410104
exiting due to exception: 130410104
Process v8.cmd exited with 1

@pavelsavara
Copy link
Member

@vargaz is it actionable now ?

@lewing
Copy link
Member

lewing commented Sep 24, 2022

@vargaz this is showing up regularly and we need to resolve it, it looks like some mixed paths aren't handling the unmanaged exception?

cc @marek-safar @lambdageek

@lambdageek
Copy link
Member

lambdageek commented Sep 26, 2022

Looking at this one, #74302 (comment), I think mono_wasm_invoke_method_bound or maybe mono_runtime_invoke (on wasm?) needs a C++ catch clause. because our LLVM code assumes it can throw and unwind until we get back to the interpreter (to do_jit_call), but in this case we have JS->C->C# and there's no C# code to get back to. it's happening with call_entry_point but it could probalby happen with other JS export entrypoints.

Actually I wonder if we're missing a do_jit_call (or really mono_llvm_cpp_catch_exception) for some opcode?

Another thought: do we load/register AOT images asynchronously? is it possible we executed main before all the AOT images were loaded? So the interp thought it was doing a normal call, but by the time the exception is thrown we registered AOT images and they throw a C++ exception?

@vargaz
Copy link
Contributor

vargaz commented Sep 26, 2022

Disabling random testcase ordering for this assembly would probably work around the problem.

@radical radical removed the blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' label Oct 5, 2022
vargaz added a commit to vargaz/runtime that referenced this issue Oct 11, 2022
If a method is tiered while being run from interp_run_clause_with_il_state (),
the clause_args argument to interp_exec_method () still contains the old IL
offsets confusing the EH code, i.e. this line:
```
if (clause_args && frame == clause_args->exec_frame && context->handler_ip >= clause_args->end_at_ip)
```

Clear out clause_args at the beginning to avoid this.

Hopefully fixes
dotnet#76134
dotnet#74302
lewing pushed a commit that referenced this issue Oct 14, 2022
* [mono][interp] Fix an issue with deopt and interpreter tiering.

If a method is tiered while being run from interp_run_clause_with_il_state (),
the clause_args argument to interp_exec_method () still contains the old IL
offsets confusing the EH code, i.e. this line:
```
if (clause_args && frame == clause_args->exec_frame && context->handler_ip >= clause_args->end_at_ip)
```

Clear out clause_args at the beginning to avoid this.

Hopefully fixes
#76134
#74302

* [mono][interp] Avoid tiering up methods while running clauses.

The IL offsets in the clause_args argument become out-of-date after tiering up.
github-actions bot pushed a commit that referenced this issue Oct 14, 2022
If a method is tiered while being run from interp_run_clause_with_il_state (),
the clause_args argument to interp_exec_method () still contains the old IL
offsets confusing the EH code, i.e. this line:
```
if (clause_args && frame == clause_args->exec_frame && context->handler_ip >= clause_args->end_at_ip)
```

Clear out clause_args at the beginning to avoid this.

Hopefully fixes
#76134
#74302
vargaz added a commit to vargaz/runtime that referenced this issue Oct 14, 2022
lewing pushed a commit that referenced this issue Oct 14, 2022
dotnet-bot pushed a commit to dotnet/dotnet that referenced this issue Oct 27, 2022
Diff: https://github.com/dotnet/runtime/compare/d337cba786fa105d1b97ebe5e2f7f89ff0361627..5108757b997c59ab8ba1fc5309ab0d4e730e2b77

From: dotnet/runtime@d337cba
To: dotnet/runtime@5108757

Commits:
  - Remove libstdc++ dependency from NativeAOT (#76705)
    dotnet/runtime@546fad9
  - Add support for using sccache on Unix (#76889)
    dotnet/runtime@fc0e636
  - Reintroduce typo in ICorDebug public API names (#76966)
    dotnet/runtime@e216458
  - Disable JIT/opt/OSR/pinnedlocal on all Mono flavors (#76980)
    dotnet/runtime@c6235cd
  - Cleaner way of specifying environment variables for tests (#76458)
    dotnet/runtime@e514819
  - Revert "Revert "Reduce CoreCLR PAL"" (#76972)
    dotnet/runtime@e6f3aa9
  - Remove unused code from RegexGenerator (#76951)
    dotnet/runtime@15aeb77
  - Improve HTTP/1 response header parsing (#74393)
    dotnet/runtime@d2d5ad3
  - JIT: Fix profiler tail call insertion logic for FIELD_LIST (#76883)
    dotnet/runtime@8b999ee
  - [tvOS] Disable crashing test (#76952)
    dotnet/runtime@6556178
  - Mark the port as implicit for empty values in Cookie (#76143)
    dotnet/runtime@a41ac2c
  - Reintroduce ICorDebug typo in Mono partition as well (#77002)
    dotnet/runtime@2244605
  - Include hostcommon sources in hostfxr static library (#75858)
    dotnet/runtime@7c4bd4f
  - [PERF][MAUI] Update Maui build mac version (#76945)
    dotnet/runtime@b8cab1c
  - Improve the performance of Equals* for Vector128 and Vector on Arm64 (#76944)
    dotnet/runtime@b00ad94
  - Fix insertion of alignment after BBJ_CALLFINALLY/BBJ_ALWAYS (#76988)
    dotnet/runtime@9086686
  - [wasm] event pipe tweaks (#76994)
    dotnet/runtime@54c4a4b
  - ActivatorUtilities not depending on ctor order for creating instances (#75846)
    dotnet/runtime@f58cee2
  - retire EOL Fedora 34 (#76902)
    dotnet/runtime@be5b26f
  - Disable the hugeexpr1 test failing intermittently with issue #74555 (#76950)
    dotnet/runtime@664d7c6
  - [PERF] Fix Linux arm64 AOT ROOTFS_DIR missing (Less Impactful) (#77027)
    dotnet/runtime@ff4d324
  - Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2020499 (#76907)
    dotnet/runtime@9d19137
  - [main] Update dependencies from 10 repositories (#76811)
    dotnet/runtime@d4f078b
  - Use BitOperations in more places (#76933)
    dotnet/runtime@004d732
  - Enable visual styles for host error dialog via activation context (#76762)
    dotnet/runtime@8bc9a07
  - Add overloads to ReadFromJsonAsync (#75989)
    dotnet/runtime@65d2064
  - Try changing alignment (#76451)
    dotnet/runtime@d47767a
  - use byte load instruction in OP_CHECK_THIS instead of double word instruction (#76990)
    dotnet/runtime@3b1df93
  - [mono][interp] Fix an issue with deopt and interpreter tiering. (#76743)
    dotnet/runtime@a071887
  - Remove closed issues from issues.targets (#77021)
    dotnet/runtime@8a9ca1a
  - API Debt - Microsoft.Extensions.Hosting (#76692)
    dotnet/runtime@2eee1ca
  - Revert "[wasm] Run System.Runtime tests in a deterministic order to work around dotnet/runtime#74302. (#76287)" (#77063)
    dotnet/runtime@c3bee84
  - Align env var lookup in clrconfig and jithost (#77025)
    dotnet/runtime@d2b6ce6
  - JIT: minor cleanup of some inlining methods (#77009)
    dotnet/runtime@bd3c1a4
  - Fixed a typo in a variable name (#77062)
    dotnet/runtime@0ef6f9e
  - Updated nuget project model version from 6.2.1 to 6.2.2. (#77057)
    dotnet/runtime@9567f27
  - Update comment (#77075)
    dotnet/runtime@9bcbf50
  - Cleanup file descriptions baked into Windows unmanaged .dlls (#77080)
    dotnet/runtime@4a8c04c
  - Add "_generated.*" suffix to some auto-generated files (#77083)
    dotnet/runtime@9e7a8a1
  - Delete unused extension (#77088)
    dotnet/runtime@8ed6b13
  - Leverage the shipping, roslyn based ApiCompat in dotnet/runtime (#73263)
    dotnet/runtime@960e4d7
  - Fix Typo (#77104)
    dotnet/runtime@6dc9a74
  - NativeAOT: remove some headers that are not needed (#77042)
    dotnet/runtime@59f14ac
  - [main] Update dependencies from dotnet/linker (#76779)
    dotnet/runtime@4941a08
  - Use hashcodes when looking up the JsonSerializerOptions global cache. (#76782)
    dotnet/runtime@fe921e0
  - Fix ILLink running in incremental builds (#77110)
    dotnet/runtime@3e8a5b1
  - Fix loading app-local ICU (#77065)
    dotnet/runtime@a54293e
  - #76596 update icu version for norwegian culture (#77003)
    dotnet/runtime@4574ccb
  - Emit ICorProfiler ModuleLoadFinished for dynamic modules (#77068)
    dotnet/runtime@3ba1dd2
  - [NativeAOT] fix debug assert on large number of virtual methods (#77106)
    dotnet/runtime@8393c4e
  - Update area-System.IO.Pipelines lead (#77111)
    dotnet/runtime@3f600a1
  - Avoid runtime "atomic write" check in ConcurrentDictionary for shared generics (#77005)
    dotnet/runtime@e8fa4a7
  - JIT: Evaluate GDV call args early (#75634)
    dotnet/runtime@10fc8ae
  - use mono_class_interface_offset_with_variance for interface offset in MONO_RGCTX_INFO_VIRT_METHOD_CODE (#77113)
    dotnet/runtime@8a24ff0
  - [mono][workload] Add workloads for win-arm64 using emulation (#68994)
    dotnet/runtime@cd66496
  - Don't check handles in substitution (#76730)
    dotnet/runtime@7ac397e
  - Update Unix dependencies installation script (#77107)
    dotnet/runtime@3837c2a
  - Update README.md's to use "contribution bar" (#77134)
    dotnet/runtime@0796729
  - Logging API doc additions (#77127)
    dotnet/runtime@0ba8b10
  - JIT: fix out of bounds read during SPMI collection (#77147)
    dotnet/runtime@618e890
  - API Debt - Microsoft.Extensions.DependencyInjection (#76940)
    dotnet/runtime@f7e6cf1
  - Move leap seconds DateTime configuration statics into LeapSecondCache class (#77163)
    dotnet/runtime@570b373
  - Modify __int64 definition in PAL to match the OS definition (#77056)
    dotnet/runtime@fda2fee
  - Update Strings.resx (#77175)
    dotnet/runtime@e55ece6
  - Swallow MSDTC availability exceptions for CI test reliability (#77023)
    dotnet/runtime@fdcbc7b
  - Fixes a wrong not node insertion producing broken lir range on macos arm64 (#77166)
    dotnet/runtime@e7ca4a8
  - Don't generate a nearly empty file (#76835)
    dotnet/runtime@ba99b91
  - Use DOTNET_ variables in tests (#76997)
    dotnet/runtime@51e3afb
  - JIT: avoid LCL_FLD stress for locals that already have LCL_FLD appear… (#77082)
    dotnet/runtime@bd7e1cb
  - Fix regression when serializing untyped polymorphic root-level custom converters. (#77186)
    dotnet/runtime@5ef4c68
  - [main] Update dependencies from dotnet/arcade (#76924)
    dotnet/runtime@b48c3ab
  - [main] Update dependencies from 7 repositories (#77043)
    dotnet/runtime@b6852e0
  - Add missing docs for `M.E.Configuration.Xml` (#77188)
    dotnet/runtime@b8653dd
  - [mono][sgen] Fix detection of weakref objects (#77170)
    dotnet/runtime@31d4e3a
  - [wasm][debugger] Remove `JToken` properties that are for internal use only (#75958)
    dotnet/runtime@acb4564
  - [ppc64le] Fixed FSharp crash issue (#77201)
    dotnet/runtime@10d342c
  - [JIT] ARM64 - Do not allow move and shifting with MSL on 16-bit vectors (#77123)
    dotnet/runtime@6c949f5
  - [PERF][MAUI] Update Nuget.config branch for Maui workload install net7.0 (#77231)
    dotnet/runtime@6eb3ccb
  - Fold 'static readonly single-field-struct' to constants (#77102)
    dotnet/runtime@888ad2b
  - Add IR support for modeling multiple SSA definitions as one store (#76139)
    dotnet/runtime@2b61381
  - [JIT] X64 - Three instruction replacement sequence for multiply in certain cases (#76981)
    dotnet/runtime@ccd9d16
  - Add missing tests for NamedPipes (#72956)
    dotnet/runtime@88aea31
  - [wasm] few JS interop tests (#77218)
    dotnet/runtime@9674537
  - [wasm][debugger] Remove non-deterministic signals from debugger tests. (#77038)
    dotnet/runtime@a17d3d2
  - [mono][interp] Don't use mov.vt when storing into primitive type fields  (#77221)
    dotnet/runtime@12f9f91
  - JIT: Support delegate GDV guards in loop cloning (#75140)
    dotnet/runtime@17d613e
  - Update dependencies from https://github.com/dotnet/linker build 20221018.2 (#77214)
    dotnet/runtime@57f64d9
  - [wasm] Template nits 2 (#77205)
    dotnet/runtime@95d36a9
  - Added snake and kebab naming policies to JSON serializer (#69613)
    dotnet/runtime@24813dc
  - [wasm] IDBFS test
    dotnet/runtime@7d06aff
  - Remove more swprintf_s uses (#77228)
    dotnet/runtime@35f4967
  - Update .vsconfig file (#77189)
    dotnet/runtime@fce9117
  - Make sure all heap segment fields are populated in the DAC (#77035)
    dotnet/runtime@a46a28e
  - Update System.Speech to Eric/Jeff (#77142)
    dotnet/runtime@b1aa168
  - Fixes issue when monitoring a process launched via the same command line (#76965)
    dotnet/runtime@a32feb0
  - Add [DebuggerStepThrough] to MulticastDelegate constructors. (#77132)
    dotnet/runtime@6e51009
  - Port stackoverflow fix from Roslyn to SourceGenerator PolyFill (#76955)
    dotnet/runtime@6e6032c
  - Trim file type bits from mode header (#77151)
    dotnet/runtime@e242819
  - Fix a signed/unsigned comparison warning (#77230)
    dotnet/runtime@9aaa21d
  - Modify ARM64 thunktemplates.S to make it work with GNU ld (#77275)
    dotnet/runtime@de5b185
  - Adds `ActivatorUtilities.CreateFactory<T>` API (#77185)
    dotnet/runtime@e542a20
  - Fix dotnet-pgo (#77259)
    dotnet/runtime@be7d6f5
  - Don't invoke EnsureInstructionSetFlagsAreValid all the time in JIT (#77237)
    dotnet/runtime@ddebaf5
  - Add new version of the ContentionStart event (#72627)
    dotnet/runtime@69a1da6
  - Remove uses of PAL's `swprintf_s` from mono. (#77284)
    dotnet/runtime@9c35cfd
  - Fix recurisve `Monitor.TryEnter` to not return false due to a condition (#77243)
    dotnet/runtime@ffea6de
  - Fix the __int64 to be long long on macOS only (#77268)
    dotnet/runtime@4fc3eb4
  - Fix link (#77297)
    dotnet/runtime@76c960b
  - [mono][jit] Disable inlining for constrained calls on gshared parameters. (#77274)
    dotnet/runtime@3df94de
  - Migrate host.tests from Newtonsoft to STJ (#76901)
    dotnet/runtime@b4a3c68
  - Clearing all cards for free regions (#77224)
    dotnet/runtime@4708ca8
  - Remove _fdopen from PAL (#77272)
    dotnet/runtime@d5151dc
  - Fix GCShadow for regions (#77011)
    dotnet/runtime@50f7ab6
  - [ppc64le] Implementation of mono_arch_get_delegate_virtual_invoke_impl method for ppc64le architecture (#77308)
    dotnet/runtime@7ebeed1
  - Filter out addresses that are not in bookkeeping range during background promote (#77067)
    dotnet/runtime@2acef87
  - Simplify DynamicMethod arg validation (#77277)
    dotnet/runtime@43552c6
  - [wasm] Misc fixes (#76942)
    dotnet/runtime@3cb7f5a
  - JIT: Clean up inliner substitution (#77176)
    dotnet/runtime@c34ccb1
  - [tests][Android] ReAdd Android library test jobs (#77280)
    dotnet/runtime@1b4f17b
  - Sync shared code from aspnetcore (#77323)
    dotnet/runtime@b5a27cd
  - Fix `CacheEntryExtensions.SetValue()`'s signature to allow `null` values (#77305)
    dotnet/runtime@f436780
  - Rename COMPlus_ to DOTNET_ (#77321)
    dotnet/runtime@77331bb
  - Remove some unnecessary path manipulation helpers (#77301)
    dotnet/runtime@2f9418d
  - JIT: Use metadata names for SIMD intrinsic method recognition (#76786)
    dotnet/runtime@3f40c3d
  - Update Value of TwoDigitYearMax to 2049 (#76848)
    dotnet/runtime@ebf4ea7
  - Delete removed tests from list (#77344)
    dotnet/runtime@4238ef0
  - Set DNER for all local fields (#77341)
    dotnet/runtime@4e85471
  - [mono][interp] Small improvements to get span item (#77331)
    dotnet/runtime@72eb39c
  - [Android][tests] Replace hardcoded /tmp path (#77291)
    dotnet/runtime@33cb335
  - Temporary instrumentation for #76280 (#77365)
    dotnet/runtime@e232f79
  - Add ReadOnly{Observable}Collection/Dictionary.Empty (#76764)
    dotnet/runtime@bbcff6b
  - SmtpClientTest Assertion Fail Fix (#76361)
    dotnet/runtime@c092a76
  - SPMI: Fix repPrintObjectDescription and repGetStringLiteral (#77372)
    dotnet/runtime@1c265ec
  - Revert "Override ReadAsync and WriteAsync methods on ConsoleStream. (#71971)" (#77360)
    dotnet/runtime@58a1180
  - Update def flags in gtCloneExpr (#77378)
    dotnet/runtime@cc140fc
  - Fix comment (#77226)
    dotnet/runtime@2d8379d
  - [wasm] Add `IMemoryView` as exported type (#77371)
    dotnet/runtime@41db775
  - Fold primitive-typed access to promoted structs in local morph and forbid mismatched struct assignments (#76766)
    dotnet/runtime@76cf397
  - Fix copy propagation dump (#77389)
    dotnet/runtime@0c0102d
  - Detriplicate internal SingleProducerSingleConsumerQueue (#76932)
    dotnet/runtime@70fb135
  - Fix reported PriorityQueue issue. (#77229)
    dotnet/runtime@090003a
  - SPMI: More information on CI failures (#77361)
    dotnet/runtime@9290f85
  - Consolidate the `GUID` to string logic (#77394)
    dotnet/runtime@a394aea
  - Add null check before calling Path.GetFullPath (#76696)
    dotnet/runtime@5108757

[[ commit created by automation ]]
carlossanlop pushed a commit that referenced this issue Nov 10, 2022
…tiering. (#77059)

* [mono][interp] Fix an issue with deopt and interpreter tiering.

If a method is tiered while being run from interp_run_clause_with_il_state (),
the clause_args argument to interp_exec_method () still contains the old IL
offsets confusing the EH code, i.e. this line:
```
if (clause_args && frame == clause_args->exec_frame && context->handler_ip >= clause_args->end_at_ip)
```

Clear out clause_args at the beginning to avoid this.

Hopefully fixes
#76134
#74302

* [mono][interp] Avoid tiering up methods while running clauses.

The IL offsets in the clause_args argument become out-of-date after tiering up.

Co-authored-by: Zoltan Varga <vargaz@gmail.com>
@vargaz
Copy link
Contributor

vargaz commented Nov 11, 2022

Does this still happen ?

@vargaz
Copy link
Contributor

vargaz commented Nov 17, 2022

-> Fixed

@vargaz vargaz closed this as completed Nov 17, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Dec 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture area-VM-meta-mono test-failure wasm-aot-test WebAssembly AOT Test
Projects
None yet
Development

No branches or pull requests

6 participants