#14471: Exception KeyError: in WeakValueDictionary remove ignored
---------------------------+------------------------------------------------
       Reporter:  vbraun   |         Owner:  rlm      
           Type:  defect   |        Status:  new      
       Priority:  major    |     Milestone:  sage-5.10
      Component:  memleak  |    Resolution:           
       Keywords:           |   Work issues:           
Report Upstream:  N/A      |     Reviewers:           
        Authors:           |     Merged in:           
   Dependencies:           |      Stopgaps:           
---------------------------+------------------------------------------------

Comment (by vbraun):

 I agree that it looks like
 `sage.structure.unique_representation.CachedRepresentation.__classcall__.cache`

 If I change the remove() callback to
 {{{
                 import sys
                 print >> sys.stderr, 'removing', wr.key in
 self.data.keys()
                 del self.data[wr.key]
                 print >> sys.stderr, 'finished removing'
 }}}
 then I get
 {{{
     ...
     removing True
     finished removing
     removing True
     Exception KeyError: (((<class 'sage.categories.algebras.Algebras'>,
 Callable function ring with arguments (x, y)), ()),) in <function remove
 at 0x1acf758> ignored
     removing True
     finished removing
     removing True
     finished removing
     ...
 }}}
 So the weakvaluedict (self.dict) is in a bad state...

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