-
Notifications
You must be signed in to change notification settings - Fork 10k
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
Chrome Mobile 91 may result in WebAssembly load error #33559
Comments
@rodriguezrm thanks for contacting us. In order for us to reproduce this issue we would need a minimal repro project as a publicly accessible github repository as well as detailed steps on how to reproduce the issue. |
thanks @javiercn doing that. I'll let you know when done |
Hi there @javiercn fyi I created a new project from scratch using blazor templated from VS 2019. https://github.com/rodriguezrm/HelloBlazorWorld I was able to reproduce the error. Same error. In order to reproduce it
While loading the page you will get below error. dotnet.3.2.0.js:1 Error |
Yes this is very big problem. On mobile google chrome 91... version. Working app is not working any more on this browser. It simply is not loading. On other browsers it performs well. But it looks like it is not only related with chrome 91.. for android, but for desktop chrome 91... as well. I tried creating from blank template BLAZOR wasm 5.0.7 from Visual studio and first time you run in in desktom google chrome 91... it loads only in 30 seconds or more. All next times it loads in 3 s. So what browser is dooing 27 s or more? After cleaning google chrome history - again loads in 30 seconds or more. This is very bad situation. Can any one imagine web page in production with 30 s first load time !!! What is going on actually? Now we have BLAZOR wasm with different load times or not working any more depending on browser from 3 s - 30 s or more. |
@javiercn I had this exact issue reported to us today on Chrome 91 Android. This seems to be affecting ALL Blazor WASM sites regardless of version that I have tested. |
It worked perfectly on Android Chrome 90, then errors as soon as I installed the update for 91. [91.0.4472.101]. Reproduced on Android 9, Android 10, and Android 11 |
Confirmed it works in Latest Android Edge [46.04.4.5157] |
@rodriguezrm just noticed that you are using version |
For all folks affected here, does this repro for you on 5.0 and an out of the box template? |
Ping @lewing, @danroth27 - looks like we'll need to prioritise this. Based on the error message, do you think Samsung Chrome 91 might have changed the max stack size or something? |
@Bigtalljosh Just experiment. Vanilla net5.0 wasm project works Example of a 3.1 functions. Client is a standard 2.1 library wasm that does not work [non-vanilla]: https://strifesolutions.com/ |
Tried to test with Preview 5 with the same vanilla blazor wasm VS template app but
|
@Bigtalljosh That's definitely unrelated. Your error is coming from server-side code. If you think this is a bug could you please file it separately? However be sure you're creating your project normally from the project template using an up-to-date SDK, rather than changing any package references after it was created. |
Yeah sorry I should've been clear, I only mention so you know why we haven't tested preview 5 yet 😅 |
NET 5 5.0.7 blazor wasm VS out of the box template. Works on android 11 google chrome 91... |
More info:
So the issue seems specific to a combination of:
For people who have a working repro of this issue, are you able to break it down to determine what specifically you're doing differently from the default project template that triggers the issue? If you can find a minimal change that introduces the problem, we'll be in a much better position to know if it's something fixable in the framework vs an application bug (related to a specific browser) or something else. |
Not sure but first idea was relation with installed packages like in this description of issue Megabit/Blazorise#2448 |
@SteveSandersonMS I'm also getting the same error using https://powered4.tv Using Galaxy 6 and GalaxyNote20 and Chrome Version 91.0.4472.101 Maybe you cannot reproduce it because emulator...idk |
@SteveSandersonMS I checked and you can re-create the issue using BrowserStack - I had to login to the app store to update Chrome to latest. We haven't made any changes to Powered4.tv yet so can still see the issue. I just deleted half the code and deployed to our test environment and reached a point where the app is working. I am AFK for a few hours but will try and isolate the problem and produce a minimal change that introduces the problem later tonight. |
Thanks for all the extra info, @srpeirce. I appreciate that diagnosing this is a very tedious process. I'm setting up some conversations with the runtime team internally to figure out what we can do. In the meantime, the more info you can find, the better. It's unclear whether the "bad initialization perf" and the "error" cases are two separate problems, or two manifestations of the same problem. Does the "bad initialization perf" issue reduce in severity with the more features you remove? Or is there some single underlying thing that makes the difference between "starts fast like normal" vs "takes several minutes"? It might be possible to use a binary-search-like debugging strategy (e.g., remove half of the pages, then another half, then half of the features from the remaining page, etc). Alternatively start with the default project and add half of your production app dependencies, then another other half, etc. Again, I know that's super time-consuming. If you did end up with a minimal repro of the slow-startup case, we'd definitely want to see the code for debugging. BTW are you also able to repro the issue being solved with Chrome 92 Beta? If it is some defect that Chrome introduced in 91 that was immediately fixed in 92, it might be that it's truly a browser issue, and maybe the Chromium team might be convinced to backport the 92 fix to the 91.x release. |
To clarify, are you saying that also https://strifesolutions.com/ reproduces the problem? If so that's really interesting because it looks like a far more minimal site and would give us a much better chance of diagnosis. Is it your site? If so, is there any chance you'd be willing to give us access to the source code for it so we can investigate? |
Hi @SteveSandersonMS, StrifeSolutions is one of mine, happy to give you access. I was able to reproduce using a Pixel 3 on Browserstack on both Powered4.tv and strifesolutions.com. Will add you as collaborator in a moment |
Apologies should've mentioned. You should have access now. Please let me know if you still don't. StrifeSolutionsLtd |
Thanks @jberlyn. I'm guessing the answer will be no, but did you by any chance change something in your production site (https://lkc.berlyn.me/) to fix the issue? Because I can no longer repro it. There did seem to be a problem yesterday (in that the "loading" screen kept spinning indefinitely, although there was no error message, so maybe that wasn't the same issue), but today:
... and under every combination, the site loaded and worked correctly. Once again I don't know if this means Chrome has somehow fixed this, despite the version number not changing (maybe they are A/B testing something?), or if it means the issue just rarely happens, but when it does happen the bad state gets cached on a device so to those people it looks like it happens consistently. |
Yesterday was published a new version of Chrome 91 for Android (was 91.0.4472.101 and now is 91.0.4472.120) see https://chromereleases.googleblog.com/2021/ but from what I understood it will only be available in the coming weeks , the date is vague. I suggest we try to perform next tests in this new version asap. |
Sadly same problem with various blazor apps Android 91.0.4472.101 and 91.0.4472.120 same problem. Here is an app: I will try to change to dotnet 6 preview 5 and let you know. I remember this problem occured with chrome already like one year ago didn't it? |
@Patrizio I don't remember another version of Chrome for Android that had such a serious issue with Wasm Apps, maybe some of the other colleagues in this thread can remember. Anyway, thanks for the information about version 91...120, which has the same problem. Good luck with .Net6 Preview5! |
@PatrizioR - If straight upgrade to ne6 preview 5 doesn't work, try relinking the runtime: https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-5/#reduced-blazor-webassembly-download-size-with-runtime-relinking This worked for me! |
@SteveSandersonMS There had been two commits to Commits (only yourself and @danroth27 should be able to see these): |
Hello Mauricio, upgrade to dotnet 6 preview 5 worked. Needed to clear browser cache/space for that website (again, already did that many times before the upgrade, when I still had no clue what the cause was) and reload the website. Thanks again for your help. Anyway I wonder how people with a productive app will handle that problem (hard to tell customers to clear cache and delete space also don't know what will happen to locale storage/index db stuff then. Good luck to all others, I will now slowly update all my apps to dotnet 6 preview 5 and see how things are going |
@Patrizio This is certainly good news! It's unfortunate that we don't have an alternative with .Net 5 yet but I've never been against upgrading versions, even though .Net 6 preview 5 is beta. |
Good morning everybody. My App has also been implemented if bugs in .Net6 Preview 5, it fixes Loading bug in Chrome91. Good luck to everyone! |
Chrome Mobile 91.0.4472.101 on all tests. Updated to .NET6 preview5 Phisical Device (Pixel 2 XL) .NET 6 - Preview 5 with linking (dotnet workload install microsoft-net-sdk-blazorwebassembly-aot before publish) - No error, No console data (clear). but page is frozen. Left it for X mins keeping browser tab active and did not do anything. .NET 6 - Preview 5 with linking (dotnet workload install microsoft-net-sdk-blazorwebassembly-aot before publish) + Assembly trimming checked. - App does not start, but errors are cacthed:Streaming compilation failed. Falling back to ArrayBuffer instantiation. RangeError: WebAssembly.instantiate(): Out of memory: wasm memory .NET 6 - Preview 5 with linking and assembly trimming and true to client Csproj - same as above. Even with: it doesn't work With chrome mobile beta (future 92) and other browser works as expected. With chome 91 AND suggested feature flags it works as expected in all cases. |
So there is no solution for .net 5 and .net 6? Does somebody know the release date for chrome 92? |
I can confirm that the pain of updating to .net 6 preview also did not resolve the issue for me. To be honest, this seems like a pretty serious problem, given Chrome Mobile 91's extensive reach. |
If Google follows their usual cadence, 92 will likely be out in another week or two. To be clear, Blazor is not broken... WASM in a general sense is broken on Chrome. If you haven't commented on the Chromium bug, you should. |
Happy to do so, do you have a link handy? I did not see it referenced in this thread.. |
I'm experiencing a very similar problem on the latest version of Opera for Android, so this browser might be affected as well. |
Disabling invariant globalization solved the problem for my website. I had invariant globalization enabled in the <PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup> The website didn't load correctly in the current stable versions of Chrome and Opera for Android. Most times it would get stuck during loading without any error, after a few refresh attempts it would sometimes load ok and then after another refresh get stuck again. At the same time it worked fine in Firefox for Android and in desktop browsers. Here's a minimal reproducible example:
In case of my website the problem demonstrated itself a little differently: there was no error pop-up when the loading got stock. That's probably because the website had a service-worker and the example above doesn't. Hope this wasn't too many words and that it will help you pinpoint the issue. |
We're seeing this issue on our app too. Works fine on firefiox mobile and iOS Chrome, but Android Chrome 91 does not work. It partially loads if we enable InvariantGlobalization but errors, and turning it off or leaving it out gets stuck on "Loading..." |
My app is on Blazor 6.0.0-preview.6.21355.2 Chrome 91.0.4472.164 on Android - Does not work Edge 46.06.4.5160 on Android - Works fine I do not use Invariant Globalization and I don't do AOT as it generates much bigger files, and performance has not been a problem so far. |
Chrome 92 for Android was released today, and they say it will be rolling out in "the next few weeks." I don't know if you can force the update, but once someone does, we should verify that our WASM apps work again with no feature flags set. |
What solution does Microsoft recommend? My Blazor app stopped working on Chrome for Android 91 and I spent several hours trying to figure out why until I ran across this issue. According to the comment posted by Google engineer, the underlying issue will be fixed in v92, but they don't really know what caused it... That doesn't give me much confidence that it will not happen again. This is a potential disaster for a small startup that made a bet on Blazor. Fortunately, my app is currently still in development and not in production yet. https://bugs.chromium.org/p/chromium/issues/detail?id=1214508#c8 Isn't Microsoft involved in contributing to the Chromium project now that it ditched the old Edge? Have you considered running automated tests on each popular browser that could detect catastrophic bugs that prevent a Blazor app from launching? Thanks. |
@daniel-p-tech Unfortunately, because the issue hasn't been diagnosed, it's difficult to be sure that this issue will stay fixed. But we are looking at adding Blazor tests for beta and canary browser builds to catch these kinds of regressions earlier. |
Thank you for contacting us. Due to a lack of activity on this discussion issue we're closing it in an effort to keep our backlog clean. If you believe there is a concern related to the ASP.NET Core framework, which hasn't been addressed yet, please file a new issue. This issue will be locked after 30 more days of inactivity. If you still wish to discuss this subject after then, please create a new issue! |
Solution is working OK on Desktop / Chrome
Solution is working OK on Android / Edge, Firefox, Opera and Samsung Internet
Tested and able to reproduced on two different Samsung devices, Galaxy 6 and Galaxy Notes 20 using Chrome
Note: Page was working ok on same devices previous last chrome update.
Page is crashing "RELOAD" message, ONLY on Android Chrome Version: 91.0.4472.101
Solution environment
Project Sdk="Microsoft.NET.Sdk.Web"
PropertyGroup
TargetFramework>netstandard2.1</TargetFramework
RazorLangVersion>3.0</RazorLangVersion
Nullable>enable</Nullable
/PropertyGroup
ItemGroup
PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" /
PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" /
PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" /
PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" /
PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="3.1.7" /
PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="3.1.7" /
PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" /
PackageReference Include="System.Net.Http.Json" Version="3.2.1" /
ItemGroup
Error
dotnet.3.2.0.js:1 Stacktrace:
dotnet.3.2.0.js:1 Error
at 640908 (dotnet.3.2.0.js:1)
at _emscripten_asm_const_iii (dotnet.3.2.0.js:1)
at wasm_logger (:wasm-function[3126]:0x9ab09)
at eglib_log_adapter (:wasm-function[6030]:0x10e78d)
at monoeg_g_logstr (:wasm-function[4574]:0xc99e6)
at monoeg_g_logv_nofree (:wasm-function[2192]:0x60c59)
at monoeg_g_log (:wasm-function[132]:0x2ffc)
at g_error_xsx (:wasm-function[5875]:0x103f51)
at interp_exec_method (:wasm-function[1120]:0x2d3e7)
at interp_runtime_invoke (:wasm-function[5655]:0xf7391)
blazor.webassembly.js:1 Unimplemented opcode: 0303 d.vt at 0x0
f.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1
f.printErr @ blazor.webassembly.js:1
blazor.webassembly.js:1 undefined
blazor.webassembly.js:1 undefined
f.printErr @ blazor.webassembly.js:1
dotnet.3.2.0.js:1 Uncaught (in promise) RuntimeError: abort(undefined). Build with -s ASSERTIONS=1 for more info.
at abort (dotnet.3.2.0.js:1)
at _abort (dotnet.3.2.0.js:1)
at wasm_logger (:wasm-function[3126]:0x9ab2b)
at eglib_log_adapter (:wasm-function[6030]:0x10e78d)
at monoeg_g_logstr (:wasm-function[4574]:0xc99e6)
at monoeg_g_logv_nofree (:wasm-function[2192]:0x60c59)
at monoeg_g_log (:wasm-function[132]:0x2ffc)
at g_error_xsx (:wasm-function[5875]:0x103f51)
at interp_exec_method (:wasm-function[1120]:0x2d3e7)
at interp_runtime_invoke (:wasm-function[5655]:0xf7391)
The text was updated successfully, but these errors were encountered: