Jean, Thanks so much for the summary. I dont expect that we'll be able to do much with the current crop of information but as soon as somebody makes the problem replicable, we'll be able to solve it. I have a suspicion that it may be related to conflict errors as well.. do you see any conflict errors in your log? - C Jean Jordaan wrote:
Hi Dieter
Yes, I recall now I've seen it mentioned.
FWIW, here's a summary of the substantive things I found in the archive ..
In this thread: http://lists.zope.org/pipermail/zope-dev/2001-May/011272.html between Chris Withers and Chris McDonough, ChrisM concludes as follows:
"I actually expected all along that it was mounted storage objects causing the error"
I'm not using mounted storage, and get the error on various kinds of extension classes. PortalMember and PersistentUserSource below (see [1]) belong to the LoginManager Membership product ("version.txt": Membership 0.7.8). Customer below is a normal ZClass, created through the web. The only thing that I can think of which all of these have in common, is that they use ZPatterns. Customer instances are stored in a ZPatterns Rack in the ZODB. I'm using ZPatterns-0-4-3p2.
ChrisW concludes that the consequences are only aesthetic and ignorable, but in my case it does present the user with a Zope error, and oblige him/her to reload the page :(
In this thread: http://lists.zope.org/pipermail/zope-dev/2001-August/012834.html you report solving the "Could not load state: None object has no attribute 'load'" problem for an application storing user information in an Oracle database using Generic User Folder. In that case, the problem was caching persistent objects, and the solution was to not cache them.
In my case, I'm not doing any caching, so if it's happening, it must be within the Zope (or ZPatterns?) machinery.
ChrisM responds: "I thought we had it licked after Shane showed me how to properly close a ZODB connection in CST, but unfortunately, the problem was unrelated."
I'm not using CST, so I'd guess the problem is unrelated in my case as well.
In this thread: http://lists.zope.org/pipermail/zope-dev/2001-February/009900.html Steve Alexander tells Chris Withers: "I hazard a guess that you're changing a mutable attribute of a persistent object, without doing a _p_changed=1 on your persistent object." which goes right over my head .. but it does remind me of discussions on the ZPatterns list.
Google also turns up http://lists.zope.org/pipermail/zope-checkins/2001-October/007928.html from the zope-checkins list, which as of 4 October still shows the problem as unsolved, and still in relation to mounted storages / Core Session Tracking:
- Solve "None has no attribute 'load'" errors when accessing a mounted storage under load. If you see this error, please help!
From the above, the only contribution I can make is to suggest that the problem is not specific to CST or mounted storages, and that you and Steve Alexander seem to be on the right track: Persistent objects seem to be retaining invalid ZODB references, for some reason.
Regards, Jean
[1]
import Zope app = Zope.app() ob = app._p_jar['\000\000\000\000\000\001\002\350'] print ob.id
jean
print ob.__class__
<extension class *QpViCIG2oty3+jIn5k03UQ==.PortalMember at 8ac6fe8>
ob = app._p_jar['\000\000\000\000\000\000E\326'] print ob.id
UserSource
print ob.__class__
<extension class Products.Membership.PersistentUserSource.PersistentUserSource at 84f1878>
ob = app._p_jar['\000\000\000\000\000\000\257\265'] print ob.id
1045
print ob.__class__
<extension class */V7clPOreJUsA6zwPWjjCA==.Customer at 8aaeaf0>
-----Original Message----- From: Dieter Maurer [mailto:dieter@handshake.de] Sent: Thursday, November 22, 2001 12:45 AM To: Jean Jordaan Cc: zope@zope.org Subject: Re: [Zope] ZCatalog: AttributeError: 'None' object has no attribute 'load'
Jean Jordaan writes:
I've been getting these for a long time. A retry succeeds, but it's ugly if it happens to a client. It also happens pretty often (say eg. every 20th time I upload something to Zope). I have packed the database, but that didn't help. Has anyone else noticed this, and made it go away?
------ 2001-11-21T07:09:19 ERROR(200) ZODB Couldn't load state for '\000\000\000\000\000\001\002\350' Traceback (innermost last): File /usr/local/zope/2-3-0/lib/python/ZODB/Connection.py, line 508, in setstate AttributeError: 'None' object has no attribute 'load' I saw it and Chris McDonough described it.
Search the mailing list archives. You will find detailed descriptions.
Not sure, however, if your case is covered or different...
Dieter
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
-- Chris McDonough Zope Corporation http://www.zope.org http://www.zope.com "Killing hundreds of birds with thousands of stones"