#14501: Fix memory allocation problems in data_structures_pyx.pxi
---------------------------------+------------------------------------------
       Reporter:  dcoudert       |         Owner:  joyner         
           Type:  defect         |        Status:  positive_review
       Priority:  major          |     Milestone:  sage-5.10      
      Component:  group theory   |    Resolution:                 
       Keywords:                 |   Work issues:                 
Report Upstream:  N/A            |     Reviewers:                 
        Authors:  David Coudert  |     Merged in:                 
   Dependencies:                 |      Stopgaps:                 
---------------------------------+------------------------------------------
Changes (by ncohen):

  * status:  needs_review => positive_review


Old description:

> The following test causes a segfault on my computer (Intel(R) Xeon(R) CPU
> W3520 @ 2.67GHz / 4GB ram / linux)
> {{{
> sage: G = graphs.CompleteGraph(10)
> sage: GG = G.line_graph().line_graph().line_graph()
> sage: H = GG.relabel(inplace=False)
> sage: GG.is_isomorphic(H)
> ...
> sage: line 135:  3438 Segmentation fault      (core dumped)
> "$SAGE_ROOT/spkg/bin/sage" "$@"
> }}}
> Tracking the segfault, I ended up in the {{{SC_new}}} of
> {{{sage/groups/perm_gps/partn_ref/data_structures_pyx.pxi}}} and also in
> the {{{(de)allocate_dc_work_space}}} methods of {{{double_coset.pyx}}}
> file.
>
> This patch fix some assignments performed before testing memory
> allocations and other similar stuff. Finally, I end up with a proper
> MemoryError and so the problem is solved
>
> Apply:
> * trac_14501.patch

New description:

 The following test causes a segfault on my computer (Intel(R) Xeon(R) CPU
 W3520 @ 2.67GHz / 4GB ram / linux)
 {{{
 sage: G = graphs.CompleteGraph(10)
 sage: GG = G.line_graph().line_graph().line_graph()
 sage: H = GG.relabel(inplace=False)
 sage: GG.is_isomorphic(H)
 ...
 sage: line 135:  3438 Segmentation fault      (core dumped)
 "$SAGE_ROOT/spkg/bin/sage" "$@"
 }}}
 Tracking the segfault, I ended up in the {{{SC_new}}} of
 {{{sage/groups/perm_gps/partn_ref/data_structures_pyx.pxi}}} and also in
 the {{{(de)allocate_dc_work_space}}} methods of {{{double_coset.pyx}}}
 file.

 This patch fix some assignments performed before testing memory
 allocations and other similar stuff. Finally, I end up with a proper
 MemoryError and so the problem is solved

 Apply:
 * [attachment:trac_14501.patch]

--

Comment:

 > Yes. They have not yet been assigned to SC.stuff pointers and so must be
 deallocated.

 Oops. Of course `:-P`

 > At least calloc is low level implementation and so we may expect it is
 way faster than assignments.

 Well, I don't think it makes much of a difference... It's more an
 aesthetic thing I guess `:-P`

 Well, then... good to go !

 Nathann

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14501#comment:14>
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