[ZODB-Dev] RelStorage: Error Installing Plone Site on Oracle RAC

Shane Hathaway shane at hathawaymix.org
Thu Dec 2 17:46:21 EST 2010


On 12/02/2010 03:25 PM, Darryl Dixon - Winterhouse Consulting wrote:
>> [...snip...]
>> We have added a new schema to our Oracle RAC database and mount
>> point inside Zope, attempted to add a Plone site, and get the following
>> error. If everything else remains the same, but the ZODB Mount in the
>> zope.conf gets pointed back to a regular ZEO/ZODB, it works fine:
>>
>> 2010-12-03T10:31:14 ERROR Zope.SiteErrorLog 1291325474.290.650785606429
>> http://web-cms-edit-node3.dev.internal:8080/nu-gov-companies-www-preview/manage_addProduct/CMFPlone/addPl
>> oneSite
>> Traceback (innermost last):
>>    Module ZPublisher.Publish, line 119, in publish
>>    Module ZPublisher.mapply, line 88, in mapply
>>    Module ZPublisher.Publish, line 42, in call_object
>>    Module Products.CMFPlone.factory, line 86, in addPloneSite
>>    Module Products.GenericSetup.tool, line 390, in
>> runAllImportStepsFromProfile
>>     - __traceback_info__: profile-Products.CMFPlone:plone
>>    Module Products.GenericSetup.tool, line 1179, in
>> _runImportStepsFromContext
>>    Module Products.GenericSetup.tool, line 1090, in _doRunImportStep
>>     - __traceback_info__: content
>>    Module Products.CMFCore.exportimport.content, line 37, in
>> importSiteStructure
>>    Module Products.CMFCore.exportimport.content, line 166, in import_
>>    Module Products.CMFCore.exportimport.content, line 185, in _makeInstance
>>    Module Products.CMFCore.TypesTool, line 716, in constructContent
>>    Module Products.CMFCore.TypesTool, line 278, in constructInstance
>>    Module Products.CMFCore.TypesTool, line 290, in _finishConstruction
>>    Module Products.CMFCore.CMFCatalogAware, line 148, in
>> notifyWorkflowCreated
>>    Module Products.CMFCore.WorkflowTool, line 292, in notifyCreated
>>    Module Products.CMFCore.WorkflowTool, line 642, in
>> _reindexWorkflowVariables
>>    Module Products.Archetypes.CatalogMultiplex, line 66, in
>> reindexObjectSecurity
>>    Module Products.ZCatalog.CatalogBrains, line 52, in
>> _unrestrictedGetObject
>>    Module OFS.Traversable, line 175, in unrestrictedTraverse
>>     - __traceback_info__: (['Members', 'site'], '')
>> IndexError: string index out of range
>>
>>
>> Any thoughts on why RelStorage usage might cause this?
>>
>
> So, it seems that this is a Heisenbug - I instrumented OFS.Traversable to
> catch the error, log some stuff, and re-raise... And the site add then
> worked without any exception being thrown, no logging appear, etc :-( The
> bug otherwise was replicated twice prior to the code change.
>
> That is somewhat worrisome. Anyone who can shed some light?

Make sure the databases are really separated.  Use different commit lock 
IDs, set a different cache prefix for each database (or use different 
memcached servers), and make sure each database has no data whatsoever 
before you begin.

My guess is some simple exception happened earlier (maybe the database 
had old objects, or you accidentally used the wrong database at some 
point, or Plone's setup process stalled too long on some step) and the 
all-important detailed traceback got swallowed by a greedy except clause 
in Zope or Plone.

Shane


More information about the ZODB-Dev mailing list