#14150 closed defect (fixed)
Fix wait() in @parallel
Reported by: | Jeroen Demeyer | Owned by: | Jason Grout |
---|---|---|---|
Priority: | major | Milestone: | sage-5.8 |
Component: | misc | Keywords: | |
Cc: | Merged in: | sage-5.8.beta2 | |
Authors: | Jeroen Demeyer | Reviewers: | David Roe |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
The new doctesting framework sometimes gets:
sage -t --long devel/sage/sage/homology/simplicial_complex.py ********************************************************************** File "devel/sage/sage/homology/simplicial_complex.py", line 2188, in sage.homology.simplicial_complex.SimplicialComplex.is_cohen_macaulay Failed example: S.is_cohen_macaulay(ncpus=3) Expected: False Got: Exception OSError: (10, 'No child processes') in <generator object __call__ at 0x646f1e0> ignored False **********************************************************************
Fix this.
Attachments (1)
Change History (13)
comment:1 Changed 10 years ago by
Status: | new → needs_review |
---|
comment:2 follow-up: 3 Changed 10 years ago by
comment:3 Changed 10 years ago by
Replying to roed:
is there one that consistently fails in the new framework?
To be honest, I cannot say for sure why the problem occurs.
I'm fairly certain the problem is the big gap between
pid = os.wait()[0]
and
del workers[pid]
If some exception would occur in between, then workers[pid]
would still be in the list of workers, even though we saw it exit. However, I cannot really explain where the exception could come from (can yield
raise exceptions?)
comment:4 follow-up: 5 Changed 10 years ago by
How consistently is this error occurring in the new framework? Every time? Do the fixes here make the problem disappear? If so, I'm willing to give this a positive review, since there is a doctest failing that will no longer fail.
comment:5 Changed 10 years ago by
Replying to roed:
How consistently is this error occurring in the new framework? Every time?
Not every time, but it's still reasonably common that I have seen it multiple times.
comment:7 Changed 10 years ago by
Reviewers: | → David Roe |
---|---|
Status: | needs_review → needs_work |
You should fix the unpickling after breaking it. Add
sage: from sage.structure.sage_object import unpickle_override sage: del unpickle_override[('sage.rings.polynomial.polynomial_rational_flint', 'Polynomial_rational_flint')]
after the end of the TESTS
block. Otherwise it looks good.
Changed 10 years ago by
Attachment: | 14150_use_fork.patch added |
---|
comment:9 Changed 10 years ago by
Status: | needs_work → needs_review |
---|
comment:11 Changed 10 years ago by
Merged in: | → sage-5.8.beta2 |
---|---|
Resolution: | → fixed |
Status: | positive_review → closed |
Looks good. You didn't add a doctest: is there one that consistently fails in the new framework?