Skip to content

Update SDK#41158

Merged
sebastienros merged 5 commits intomainfrom
wtgodbe/SDKWillFail
Apr 28, 2022
Merged

Update SDK#41158
sebastienros merged 5 commits intomainfrom
wtgodbe/SDKWillFail

Conversation

@wtgodbe
Copy link
Member

@wtgodbe wtgodbe commented Apr 12, 2022

Expect that this will re-introduce component-e2e test failures, which we can use this PR to investigate

CC @SteveSandersonMS @TanayParikh

@wtgodbe wtgodbe requested review from a team and dougbu as code owners April 12, 2022 20:22
@ghost ghost added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Apr 12, 2022
Copy link
Contributor

@dougbu dougbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And, yes, the new SDK busted component tests again. Well done❕

@TanayParikh TanayParikh added blocked The work on this issue is blocked due to some dependency * NO MERGE * Do not merge this PR as long as this label is present. labels Apr 12, 2022
@TanayParikh TanayParikh marked this pull request as draft April 12, 2022 22:25
@TanayParikh
Copy link
Contributor

Converted to draft so it isn't merged unintentionally.

@wtgodbe
Copy link
Member Author

wtgodbe commented Apr 13, 2022

@lewing we're seeing test failures in Components-E2E that may indicate a change in mono, are you aware of anything that could be related?

Encountered browser errors [2022-04-12T04:18:45Z] [Debug] http://127.0.0.1:37767/subdir/_framework/dotnet.7.0.0-preview.4.22208.8.c2vpcbfx9u.js 2:12646 "mono_wasm_runtime_ready" "fe00e07a-5519-4dfe-b35a-f867dbaf2e28" [2022-04-12T04:18:45Z] [Debug] http://127.0.0.1:37767/subdir/_framework/dotnet.7.0.0-preview.4.22208.8.c2vpcbfx9u.js 2:18807 "Could not find symbols file dotnet.js.symbols. Ignoring." [2022-04-12T04:18:46Z] [Severe] http://127.0.0.1:37767/subdir/_framework/dotnet.7.0.0-preview.4.22208.8.c2vpcbfx9u.js 2:19870 "Error: [MONO] * Assertion: should not be reached at /__w/1/s/src/mono/mono/mini/interp/interp.c:3607\n\n at mono_wasm_stringify_as_error_with_stack (http://127.0.0.1:37767/subdir/_framework/dotnet.7.0.0-preview.4.22208.8.c2vpcbfx9u.js:3:19506)\n/n) at Object.mono_wasm_trace_logger (http://127.0.0.1:37767/subdir/_framework/dotnet.7.0.0-preview.4.22208.8.c2vpcbfx9u.js:3:19877)\n/n) at _mono_wasm_trace_logger (http://127.0.0.1:37767/subdir/_framework/dotnet.7.0.0-

@TanayParikh
Copy link
Contributor

cc/ @pavelsavara

@dougbu
Copy link
Contributor

dougbu commented Apr 19, 2022

@BrennanConroy are you thinking there's a fix for our components pipeline in the newer SDK❔

@BrennanConroy
Copy link
Member

I have no idea, but it's worth trying

@BrennanConroy
Copy link
Member

@lewing Any ideas why an SDK update would be causing test failures related to DateTime with Blazor-Wasm?

@Tratcher
Copy link
Member

This is blocking #41317.

@TanayParikh
Copy link
Contributor

This is blocking #41317.

We have an offline thread with the runtime folks, and are working on a resolution.

@sebastienros
Copy link
Member

Current analysis seems to point to trimming issues. The test passes in Debug but fails in Release. A difference is that the app is trimmed in release.

Can someone from the Blazor or mono team find the root cause with this new information?

@sebastienros
Copy link
Member

Did some local investigation and it seems that typing the value has no effect on the bound field.
And it works for other types like double though.

expected = new DateTime(1980, 1, 1);
target.SendKeys(Keys.Control + "a"); // select all
target.SendKeys("01/01/1980 00:00:00\t");
Assert.Equal(expected, DateTime.Parse(target.GetAttribute("value"), CultureInfo.InvariantCulture)); // SUCCEEDS
Assert.Equal(expected, DateTime.Parse(boundValue.Text, CultureInfo.InvariantCulture)); // FAILS
Assert.Equal(expected, DateTime.Parse(mirrorValue.GetAttribute("value"), CultureInfo.InvariantCulture)); // FAILS

@lewing
Copy link
Member

lewing commented Apr 26, 2022

@vitek-karas this appears to be trimming related with the linker bump. @sebastienros verified that Debug fails with trimming and Release works without it.

@TanayParikh can you point us to where the bind code lives?

@adityamandaleeka
Copy link
Member

adityamandaleeka commented Apr 27, 2022

@dougbu Now that the root cause has been identified, can we just temporarily quarantine the failing tests and let the SDK update go through? This is blocking other updates.

@sebastienros
Copy link
Member

@dougbu I can help with this one and do the quarantining if you want.

@dougbu
Copy link
Contributor

dougbu commented Apr 27, 2022

Thanks @sebastienros❕ This seems like a good idea and I'm focused on the dotnet restore mitigation.

@vitek-karas
Copy link
Member

I'm trying to investigate the test failure - but so far I burnt several hours just to build the repo... unsuccessfully for now.
If somebody know about an easier way to do this... basically I think all I need is the build output of the test in question, the msbuild binlog and at least some idea where it fails.

@dougbu
Copy link
Contributor

dougbu commented Apr 27, 2022

@vitek-karas I'm hoping someone has the information you need at hand.

More generally, we'll be interested in any problems you ran into building this repository. For example, are you hitting gaps in https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md

@vitek-karas
Copy link
Member

Re problems making the repo build:
Installing nodejs + yarn + JDK - not a great experience based on the docs. On Windows I was able to do all of this via winget eventually (after lot of searching) and probably a lot faster then following the various websites. On Linux it feels even worse - ended up searching how to do it via apt-get mostly.
But I must admit I never worked with nodejs and so on, so maybe this is just me doing it for the first time.

Lastly - I was trying this on Windows and Linux WSL. The WSL seems to cause issues for the Selenium based tests - I think I installed everything per the doc (but I could be wrong) and the Selenium tests were still failing for me.

I guess there's a bit of a weird dichotomy to the document - it starts explaining git in relative detail. But then the section on installing pre-reqs is often very short - especially nodejs which is basically just a link. I like that at least on Windows Java can be installed by a script - that helps a lot. Would be nice to have the same for Linux.

Very last minor nit: I use PowerShell even on Linux, but the PS scripts in the repo fail in weird ways when used on Linux (didn't investigate why). For example the activate.ps1 misbehaves - and the shell script is not a replacement since it won't do me any good when in PS.

P.S.: I find it "funny" that the repo requires two competing stacks to build (NodeJS and Java). Maybe a short sentence on what they're used for?

@vitek-karas
Copy link
Member

So I made some progress in investigating the failure. It seems there's a bug in System.ComponentModel.TypeConverter - I filed this to track that: dotnet/runtime#68651

What I don't understand is why the SDK/trimmer update triggers the bug. I can repro it without trimming, just setting UseSystemResourceKeys=true, which is the default for Blazor, triggers it.

It's possible that there's something else going on in test which hides this without trimming - not sure as I can't actually run the test locally yet. The repro in the runtime bug dotnet/runtime#68651 is me reverse engineering the IL diffs from Sebastien. I don't know what is the exact call which the test will do.

@vitek-karas
Copy link
Member

I checked the IL before and after the SDK change and while it's different, the end result should be the same, in both cases the property doesn't return (Default) as the code expects. So there must be some other difference somewhere else.

@vitek-karas
Copy link
Member

Latest Windows attempt do build the repo: running restore.cmd from root I get this:

...\aspnetcore\src\Servers\IIS\build\Build.Common.Settings(12,3): error MSB4019: The imported project "...\
aspnetcore\.tools\msbuild\16.5.0-alpha\tools\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.Default.props" was not found. Conf
irm that the expression in the Import declaration "...\aspnetcore\.tools\msbuild\16.5.0-alpha\tools\MSBuild\Micro
soft\VC\v160\\Microsoft.Cpp.Default.props" is correct, and that the file exists on disk. [...\aspnetcore\src\Serv
ers\IIS\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj]

No idea what I'm doing wrong :-(

@dougbu
Copy link
Contributor

dougbu commented Apr 28, 2022

@vitek-karas that last error is an indication your VS installation doesn't have everything the build needs for the native projects. Using .tools\msbuild in the path means the Arcade SDK found no VS meeting the requirements in global.json. The easiest way to solve this is w/ eng/scripts/InstallVisualStudio.ps1. Use help to decide on the right parameters for whatever you already have installed.

@sebastienros sebastienros marked this pull request as ready for review April 28, 2022 20:19
@sebastienros sebastienros requested a review from a team as a code owner April 28, 2022 20:19
@wtgodbe wtgodbe removed the * NO MERGE * Do not merge this PR as long as this label is present. label Apr 28, 2022
@sebastienros sebastienros merged commit f1ebd5d into main Apr 28, 2022
@sebastienros sebastienros deleted the wtgodbe/SDKWillFail branch April 28, 2022 20:50
@ghost ghost added this to the 7.0-preview5 milestone Apr 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework blocked The work on this issue is blocked due to some dependency

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants