#14323: libGAP messes with Python multiprocessing
--------------------------+-------------------------------------------------
Reporter: jdemeyer | Owner: was
Type: defect | Status: new
Priority: blocker | Milestone: sage-5.9
Component: interfaces | Keywords:
Work issues: | Report Upstream: N/A
Reviewers: | Authors:
Merged in: | Dependencies:
Stopgaps: |
--------------------------+-------------------------------------------------
I haven't figured out when/why, but this might happen:
{{{
sage -t devel/sage/sage/homology/simplicial_complex.py
**********************************************************************
File "devel/sage/sage/homology/simplicial_complex.py", line 3134, in
sage.homology.simplicial_complex.SimplicialComplex.automorphism_group
Failed example:
S.automorphism_group().is_isomorphic(SymmetricGroup(4))
Exception raised:
Traceback (most recent call last):
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/doctest/forker.py", line 455, in _run
self.execute(example, compiled, test.globs)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/doctest/forker.py", line 811, in execute
exec compiled in globs
File "<doctest
sage.homology.simplicial_complex.SimplicialComplex.automorphism_group[1]>",
line 1, in <module>
S.automorphism_group().is_isomorphic(SymmetricGroup(Integer(4)))
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/homology/simplicial_complex.py", line 3155, in
automorphism_group
[f.tuple() for f in self.facets()]])
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/graphs/generic_graph.py", line 16414, in automorphism_group
output.append(PermutationGroup([perm_group_elt(aa) for aa in a]))
File "refinement_graphs.pyx", line 941, in
sage.groups.perm_gps.partn_ref.refinement_graphs.perm_group_elt
(sage/groups/perm_gps/partn_ref/refinement_graphs.c:32796)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/groups/perm_gps/permgroup.py", line 653, in __call__
return self._element_class()(x, self, check=check)
File "permgroup_element.pyx", line 452, in
sage.groups.perm_gps.permgroup_element.PermutationGroupElement.__init__
(sage/groups/perm_gps/permgroup_element.c:4490)
File "sage_object.pyx", line 474, in
sage.structure.sage_object.SageObject._gap_
(sage/structure/sage_object.c:4544)
File "sage_object.pyx", line 450, in
sage.structure.sage_object.SageObject._interface_
(sage/structure/sage_object.c:4144)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/interface.py", line 199, in __call__
return cls(self, x, name=name)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/expect.py", line 1280, in __init__
self._name = parent._create(value, name=name)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/interface.py", line 389, in _create
self.set(name, value)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 1322, in set
out = self._eval_line(cmd, allow_use_file=True)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 730, in _eval_line
self._start()
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 1170, in _start
gap_reset_workspace(verbose=False)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 1496, in gap_reset_workspace
g = Gap(use_workspace_cache=False, max_workspace_size=None)
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 1084, in __init__
max_workspace_size = _get_gap_memory_pool_size_MB()
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 292, in
_get_gap_memory_pool_size_MB
pool = get_gap_memory_pool_size()
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/interfaces/gap.py", line 268, in get_gap_memory_pool_size
suggested_size = min(suggested_size,
int(mem.virtual_memory_limit()/10))
File "/padic/release/merger/sage-5.9.beta0/local/lib/python2.7/site-
packages/sage/misc/memory_info.py", line 131, in virtual_memory_limit
if platform.architecture()[0] == '32bit':
File
"/padic/release/merger/sage-5.9.beta0/local/lib/python/platform.py", line
1084, in architecture
output = _syscmd_file(executable, '')
File
"/padic/release/merger/sage-5.9.beta0/local/lib/python/platform.py", line
1032, in _syscmd_file
rc = f.close()
IOError: [Errno 10] No child processes
**********************************************************************
}}}
Looking at a `strace`, this is because libGAP installs a `SIGCHLD` signal
handler which interferes with Python's multiprocessing.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14323>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.