#25426: pickling SimpleLazyObject fails just after accessing related object of
wrapped model instance.
-------------------------------------+-------------------------------------
     Reporter:  iru                  |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Core                 |                  Version:  1.8
  (Serialization)                    |
     Severity:  Release blocker      |               Resolution:
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by iru):

 This is how this happens :

 0. pickling lazy object starts.
 1. lazy object is pickled without DJANGO_VERSION_PICKLE_KEY in wrapping
 user object.
 2. related object "profile" is pickled. It also has a reference to the
 user object. ( profile.user, due to one-to-one relationship)
 3. the user object(profile.user) is pickled again with same dict used at
 step 1. DJANGO_VERSION_PICKLE_KEY is set.
 4. pickling the user object fails due to dictionary changed size during
 iteration.
 5. pickling lazy object fails.

--
Ticket URL: <https://code.djangoproject.com/ticket/25426#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/061.954194822780f526770f19f785ff0389%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to