#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.


Reply via email to