[ZPatterns] Re: [Zope] AttributeError: 'None' object has no attribute 'load'

Chris McDonough [email protected]
Sun, 17 Mar 2002 14:26:45 -0500


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:[email protected]]
> Sent: Thursday, November 22, 2001 12:45 AM
> To: Jean Jordaan
> Cc: [email protected]
> 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  -  [email protected]
> 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"