-
-
Notifications
You must be signed in to change notification settings - Fork 174
Segfaults in Windows 2022 MSVC CI job #304
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
Hello Dobias, I tried to tackle this issue. Unfortunately I failed, and I cannot study it more in detail because I'm stuck on other projects. However, I have some details which might be of interest to you.
![]() The test will pass without any issue if I compile for x64 (I have an issue when compiling for ARM64, see below)
when trying to diagnose this on my side, I see that it works perfectly in debug mode, But I can reproduce the issue when using "RelWithDebInfo" I'm not sure this is related to the seg fault you're experiencing but let me show you what I saw:
I don't know if this is related. PS: I might contact you by email in the next days because I'm working hard on a new project which could be interesting for researchers. I'm looking for feedback, and I felt you might have an interesting feedback about it (if you have time) |
Wow, thanks a lot for the investigation! ❤️ The flakiness of the macOS CI should be fixed by this commit, which I just pushed. ✅ The problem with the Windows tests, however, is still a riddle to me. 🧐 And, sure, looking forward to your email. 👍 |
The interweave issue is probably unrelated, and due to a compiler bug. You should probably move the ++ increment at the end of the loop. |
You are probably fighting against the limitation of the GitHub runners. Maybe some limitations in threading. I just rented a visual studio machine on Azure to test it. With Visual Studio Professional 2022 17.10 on x86 64bits / Azure, the tests do run fine. |
Thanks a lot for the interweave fix! 😍 Regarding the Windows tests: If they cause so much trouble and additional complexity, maybe we should just drop them completely? |
On a test branch, I reproduced the segfault with a minimal example: TEST_CASE("show_versions - std_thread")
{
auto t = std::thread([]() { });
t.join();
}
TEST_CASE("show_versions - std_async")
{
auto handle = std::async(std::launch::async, []() { return 1; });
handle.get();
}
|
Wow, well done! The next step to be able to gather more feedback from other users would be to set up a very simple repository.
and it would compile and run this in CI. What do you think? I think I will try it (or you can if you are impatient to see the result: I cannot do it before this afternoon). |
The advantage of this version is that if it does not fail, we could then add doctest, and see if the combination doctest + thread is the cause of the issue |
Good idea, thanks, and no hurry. |
Ok, it can be reproduced with the simplest possible async code! |
Look at the comments on this SO question: I think the bug was fixed - under my feet - by GitHub while I was reporting it to Stack Overflow. I am not lucky these days with compiler and platform bugs 🙃 |
Cool minimal example! Perhaps your great report made somebody fix the bug (silently). |
Ah, no, it seems the work on the other issue happened before. Yeah, not lucky indeed. 😬 We would have solved the problem too by simply doing nothing for a few days. 🦥 |
Closing this issue, since the CI runner is fixed. ✔️ Thanks again for the nice collaboration. Situations like this (especially with long-term contributors like you) are what make maintaining an open-source project worthwhile for me. ❤️ |
https://github.com/Dobiasd/FunctionalPlus/actions/runs/9435686090/job/25989531257
Looks like something thread-related.
The text was updated successfully, but these errors were encountered: