-
Notifications
You must be signed in to change notification settings - Fork 143
Revert "Revert "Define commands as asynchronous and use Task for preview cancellation "" #1062
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
Conversation
@swift-ci please test |
Why was it reverted, and what has changed that it's ok to bring it back now? |
This was reverted because it encountered a miscompile with the latest Swift compiler that resulted in a crash while running the tests which prevented a new Swift toolchain from being successfully built. (rdar://137774949) I opened this revert and ran the CI tests because I hoped that a new toolchain would be available that reproduces the crash so that I could workaround the miscompilation but it looks like the latest main toolchain is still from October 8 so I have to wait a bit longer unless I want to build my own toolchain from source to reproduce this. |
Actually. I missed that this crash only reproduces in release builds. I can reproduce it with the existing |
I think that this successfully works around the miscompilation. I added testing steps to the PR description to verify that it works. |
I can reproduce the miscompilation 10/10 times on a9f1c0b (without the workaround) but 0/10 times on 2eafe4b (with the workaround) so I believe that that is fully fixed. However, about 1/100 times on 2eafe4b I encounter a different crash in After running the tests in release mode 6632 times (over night) with #1059 I've encountered 0 test crashes but I hit 3 unexpected unexpected test failures due to flakiness in My feeling is that a ~1/100 flakiness is too frequent but a ~1/2200 flakiness is manageable. Because of this, I plan on disabling that test in this PR and reenable it in #1059. This also gives some extra time to continue to investigate the ~1/2200 flakiness of that test to see if we can get rid of it completely. Note; I haven't had time to gather 6000 test runs on main yet because it requires running over night so I don't know if these tests have a low amount of flakiness on main as well. |
@swift-ci please test |
Thank you for looking into the issue, would you be open to doing a cross pr testing to verify it's resolved? |
Yes. How do I do that? |
Started the build here: swiftlang/swift#73834 |
That seems to be crashing (or failing an assertion) with the latest compiler instead:
|
@swift-ci please test |
I ran the same thing repeatedly on main today and after 1972 iterations it also encountered the same unexpected failure due to flakiness in |
I started another toolchain build on that draft PR that you linked to and it looks like it passed. Additionally I've been investigating the remaining ~1/2000 flakiness but since it also occurs on main I plan on addressing it in a separate PR on Monday |
I get the following output when running in
CC: @d-ronnqvist |
I'm assuming that you this the same unreliable crash that I did which is the reason why 79488db skips that test until the crashing code is no longer used in #1059:
|
Reverts #1058
Testing
To reproduce the crash caused by rdar://137774949 you need to run the tests in a release configuration with a recent Swift compiler. For me it reproduces with
swiftlang-6.1.0.1.51
but it's possible that you can go further back than that.swift test --parallel --configuration release --filter SwiftDocCUtilitiesTests.PreviewActionIntegrationTest
for i in {1..10}; do swift test --parallel --configuration release --filter SwiftDocCUtilitiesTests.PreviewActionIntegrationTests; done