From: Oleg B. <ph...@ph...> - 2013-05-23 00:05:58
|
On Wed, May 22, 2013 at 05:46:40PM -0600, Andrew Trusty <at...@ga...> wrote: > I recently upgraded an application to the newest version of SQLObject > (previously it was using a version from early 2012). This app was caching > SQLObject objects in Redis to avoid querying the database for commonly used > data. But after upgrading, a bug fix released as part of SQLObject 1.2.3 > broke the caching after running into unpickling errors. With the new > version of SQLObject, it was refusing to unpickle objects that were already > in SQLObject's cache. An example of the error message I received is below > (which comes from main.py:1692) > > eg. "Cannot unpickle User row with id=1 - a different instance with the id > already exists in the cache" > > > I've already worked around this to keep my caching working but I was > wondering what the bug was that was fixed in 1.2.3 that necessitated this > change. The site only says "Fixed a bug in cache handling while > unpickling." which I found ironic because it broke caching in my app. Was > the bug a memory leak due to having multiple instances with the same ID in > memory or was there something else? I ask because my app never seemed to > experience any adverse side effects from taking advantage of this "bug". This patch, I think: http://sourceforge.net/mailarchive/forum.php?thread_name=E1SXzWF-0005Cg-9K%40webwareforpython.org&forum_name=sqlobject-cvs The last line was not changed but id was removed from the code, that how the last line became broken. Oleg. -- Oleg Broytman http://phdru.name/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |