-
-
Notifications
You must be signed in to change notification settings - Fork 665
Rerun plural and singular/function on failure #40814
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
base: develop
Are you sure you want to change the base?
Conversation
Documentation preview for this PR (built with commit 935cfc3; changes) is ready! 🎉 |
e2ef179
to
abba674
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a bit unfortunate that we have to resort to methods like this, but I guess it's still better than having failing runs all the time.
Can you please also directly include a few other files that are known to fail sometimes (just look for "random" or "flaky" in the issues). Otherwise looks good to go from my side.
these 2 files are special in that a fail induces segmentation fault. For other files, one can workaround them directly in Python, which has less overhead (only repeat that one test instead of all tests), and it's clearer at the source that it may fail. As such, I don't want to lump them together. |
Fair enough, what about then at least still adding the following random seg faults: |
okay, fine, we can also add them later if they indeed are still occurring on CI. |
Giac is optional now, largely because it's not portable. It shouldn't cause any problems with the CI. Mosts of the tests were moved into sagemath-giac. Wouldn't it be simpler to delete the few tests that fail with hard-to-diagnose segfaults? The point of an example is to show something that works, and these don't. The point of a test is usually to ensure that something keeps working, and these don't. The issues are tracked on github. If someone wants to work on them, it's a lot easier to find an open issue than it is to find a test that has been ignored with a special case in the doctesting framework, isn't it? Testing them and ignoring the result is just wasting cycles and complicating the CI / doctest runner. |
they're not just "a few test" as far as I can tell. If you delete that test, the next test that uses singular might as well fail… I think. (It's not easy to check whether it "sometimes" fail because it takes so much time) Plus, there's already an open issue. (Several, in fact. They're correctly marked as duplicate though.) |
Plural tests failed again at https://github.com/sagemath/sage/actions/runs/17758456713/job/50465663581?pr=40811 |
I agree, would also fix the issue that these test sometimes fail on developers systems. You also don't have to delete them, just add the |
It really depends on whether or not singular becomes unusable like user202729 says, or if some individual tests can be disabled. It looks like the problem occurs when we load the singular library |
I think all reported cases involve the sage/src/sage/matrix/matrix_sparse.pyx Line 1189 in 28b7af0
In my opinion, this is another advantage of the known-bug-approach: we will know exactly which calls are triggering a certain issue, instead of "sometimes if the stars align in the wrong way something in this file throws a segfault". |
This pull request:
--all-except
tosage -t
(does what you expect)ci-meson.yml
to workaround Singular: segmentation fault in plural.pyx #29528 , the cause of which is yet unknown. (I also tried porting an old pull request that purportedly fix the issue at Make libsingular multivariate polynomial rings collectible #39628, but the result is even worse.)controlling this in bash seems easier than #39539 , for now. I suspect testing these files separately will make it stop failing however (doesn't really matter, the bug remains).
#40729 (comment) contains a traceback, but I think it isn't of too much help.
(Thought? Is
--all --exclude=a --exclude=b
better?)📝 Checklist
⌛ Dependencies