Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

noload broken for ZODB multi-database references #9

Closed
jamadden opened this issue Jan 31, 2014 · 0 comments
Closed

noload broken for ZODB multi-database references #9

jamadden opened this issue Jan 31, 2014 · 0 comments

Comments

@jamadden
Copy link
Member

Over on the zodb-dev mailing list, Jim Fulton and I got into a discussion about zc.zodbdgc being broken under Python 2.7 with both cPickle and zodbpickle.

To summarize the details of that discussion, it turns out that when cPickle in Python 2.7 fixed issue 1101399 (dict subclasses and noload) in October 2009 it wound up breaking the unpickling of the list objects that are used for persistent multi-database references: they are always empty. This in turn breaks zc.zodbdgc (with an IndexError) or anything else that wants to look at references using noload when multi-databases are involved.

This same code is in zodbpickle, so references are also broken when unpickled using this code.

It wasn't real clear what the right solution was. Jim said he wanted to think about it, at least as far as zc.zodbdgc is concerned. I hoped it would be useful to bring this issue up in this forum too if only to make sure people were aware or could find it easier if they encounter the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant