-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Dataflow analysis lockup compiling System.Runtime.Serialization.Formatters.Tests #73048
Comments
I must be doing something wrong - the above repro steps don't hang. ILC successfully process the input in about 20 seconds (maybe a tiny bit more). This is on very recent |
Tried enabling the test in #73104. The CI has been locked up like this for 20 minutes.
It's possible the repro steps don't repro it. I'm still trying to figure out what is the right way to dotnet build a single test. What I wrote above has worked for me in the past but maybe it requires some previous artifacts leftover from a previous build attempt. Not sure. What I always do locally is I change the definition of |
Running dataflow analysis on the added test takes about 20 seconds. Double the number of `yield returns` and it will take several minutes. In the runtime repo we're running into this on https://github.com/dotnet/runtime/blob/main/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTestData.cs (method `SerializableObjects()`). That one has even more `yield returns` and I lost patience waiting for it to finish.
It's probably not a lockup - I just don't have enough patience. Extracted a repro to dotnet/linker#2977. |
Running dataflow analysis on the added test takes about 20 seconds. Double the number of `yield returns` and it will take several minutes. In the runtime repo we're running into this on https://github.com/dotnet/runtime/blob/main/src/libraries/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTestData.cs (method `SerializableObjects()`). That one has even more `yield returns` and I lost patience waiting for it to finish.
Port of dotnet/linker#2979 Fixes #73048. Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
It's possible this is an illinker bug, but I'm not ready to spend time extracting an IL Linker repro:
To repro, build the repo how you build it (e.g.
build.cmd clr.aot+libs -rc Debug -lc Release
). Then:Once it tells you it's generating native code, taskkill ilc.exe and find the response file to invoke ilc.exe under artifacts\obj\System.Runtime.Serialization.Formatters.Tests\Release\net7.0-windows\native. Open src\coreclr\tools\aot\ilc.sln in VS, set configuration to the one you built (
Debug
in my case from the-rc Debug
argument), and set the response file as the command line argument. You might want to append--parallelism:1
to make things not multithreaded.The method we're stuck on is
[System.Runtime.Serialization.Formatters.Tests]System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.SerializableObjects()
Example callstack:
Cc @vitek-karas @sbomer
The text was updated successfully, but these errors were encountered: