-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Firefox v98 regression in v2.0.28 #16538
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
Comments
Interesting ... it sounds like this is either regression in emscripten or in firefox or both. Does the regression occur on chrome or safari? If not, that would strongly suggest a firefox regression. IIRC your build uses dyanmic linking, correct? (MAIN_MODULE/SIDE_MODULE). How about threading? Are you able to find a single test that fails that doesn't rely on threading? Is it possible to make a build with no dynamic linking.. would such a build be able to run any of the failing tests? If so, does the static (non-dynamic) build also fail any of the tests? In short, can we figure out if dyanamic linking and/or threading is triggering this issue? |
Is it just a single firefox release that is effected? How about v94 through v97? |
Does not occur in chrome or node. I am not testing Safari.
Yes dynamic linking, no threading
Every failing test involves dynamic linking.
Yeah I'll go ahead and check those too. I don't have a particularly efficient way of testing different browser versions though. |
Bug is present in versions 96, 97, and 98, absent from other versions. |
Well this rather odd. I guess the next step would be to try and figure out exactly where the crash is coming from. To do this you could compare the output of emscripten before and after its output break firefox, and also compare the output of firefox in both working and non-working versions. You can build with It seems somewhat unlikely (although not impossible) that it would be an llvm-side change. Are you totally sure about the bisection result? |
I will double check bisection. I think I can reduce one of the test failures into a pretty small reproduction, so that should be helpful. |
Okay maybe the issue is more complicated than it seems. I have a test failure that involves only C/C++ code, no Python APIs so that's encouraging because it can compile without building all of Python and its dependencies. But if I only compile the code that is needed for the test, the problem goes away... Maybe I am missing some compiler flag that contributes to the problem, |
Confirmed that the bug was introduced on CI failure on CI success on the commit before |
Can you try with the very latest emscripten? It could be a regression in 2.0.28 that was already fixed. |
I think it's still present on tot. |
Will check. |
I guess we need to try to narrow down what is actually going wrong, and how it could be only effecting firefox? Could it be a regression in firefox? Unlikely but possible I suppose. |
It wouldn't be the first browser bug like this we've hit Also statically linking the code into the main module while changing nothing else does make the bug go away. |
It's confusing that chromium-autoroll commits from UTC but you commit from PST because the commits don't look like they are in chronological order. |
I tried it one commit back from tip of tree and the earliest test failure went away but there are still many other test failures from the same bug: |
I've been working on trying to get Pyodide working on a more recent Emscripten since we're about a year out of date. So far I've made it up to v2.0.27 but on v2.0.28 there is a failure in Firefox v98. Many Pyodide tests fail, it seems that some function pointers are getting corrupted and cause either indirect call signature mismatch or just calling some random function. I haven't bisected the firefox version, but the bug is present in v98.0.1 and not in v93 or v99b5.
I bisected the emscripten-releases repo and found the regression first appears here:
Anyways I was wondering if you had any advice about what to do with this. Maybe the most reasonable thing is that Pyodide should just stick to Emscripten v2.0.27 until Firefox makes its next release, since the problem is gone on Firefox beta.
The text was updated successfully, but these errors were encountered: