[Zope-dev] Conflict errors on startup, revisited

Chris McDonough chrism at plope.com
Thu Feb 24 14:52:45 EST 2005


Two words: *hurt system*.  Please, let me kill it.

On Thu, 2005-02-24 at 14:29, Paul Winkler wrote:
> This is a topic that comes up occasionally, but since the symptom
> seems to be rare and hard to provoke, it never gets resolved.
> Well it's biting me again and I'm determined to fix it, but
> would like some input from the list.
> 
> Related collector issues:
> http://www.zope.org/Collectors/Zope/300
> http://www.zope.org/Collectors/Zope/1201
> 
> The issue:
> On rare occasions I have seen ConflictErrors raised during
> product installation.
> 
> Today, I can finally provoke them at will with a pretty minimal setup.
> 
> The setup:
> Zope 2.7.3, using ZEO, with DirectoryStorage on the ZEO server.
> Hardware:  dual-processor PIII 800, some kinda scsi disk, ext3, 
> some old redhat flavor of linux.
> 
> To provoke it I need merely do
> ./bin/zopectl run foo.py
> 
> ... where foo.py is empty.
> Products/ now contains only one dummy product,
> which I've named Conflictor, which contains only an empty __init__.py.
> I get a ConflictError during registration of Conflictor.
> 
> Interestingly I can only provoke this ConflictError in this particular
> INSTANCE_HOME.  I have several other instances and am not seeing the
> symptom there.
> 
> I started trivially hacking OFS/Application.py to add some debugging output
> (a diff against 2.7.3 is attached), and here's what I get:
> 
> 
> [pwinkler at dev-zope-knox01 PaulMiniInstanceHome]$ ls Products/
> [pwinkler at dev-zope-knox01 PaulMiniInstanceHome]$ mkdir Products/Conflicter
> [pwinkler at dev-zope-knox01 PaulMiniInstanceHome]$ touch Products/Conflicter/__in
> it__.py
> [pwinkler at dev-zope-knox01 PaulMiniInstanceHome]$ touch foo.py
> [pwinkler at dev-zope-knox01 PaulMiniInstanceHome]$ ./bin/zopectl run foo.py
> installing product PluginIndexes...OK!
> installing product Conflicter... BZZT
> Traceback (most recent call last):
>   File "<string>", line 1, in ?
>   File "/usr/local/lib/python2.3/site-packages/PIL/__init__.py", line 51, in app
> 
> 
>   File "/usr/local/lib/python2.3/site-packages/PIL/__init__.py", line 47, in startup
> 
>   File "/zope/Zope-2.7.3-SoftwareHome/lib/python/Zope/App/startup.py", line 96,
> in startup
>   File "/zope/ZopeSoftwareHome/lib/python/OFS/Application.py", line 279, in init
> ialize
>     initializer.initialize()
>   File "/zope/ZopeSoftwareHome/lib/python/OFS/Application.py", line 306, in init
> ialize
>     self.install_products()
>   File "/zope/ZopeSoftwareHome/lib/python/OFS/Application.py", line 561, in inst
> all_products
>     return install_products(app)
>   File "/zope/ZopeSoftwareHome/lib/python/OFS/Application.py", line 597, in inst
> all_products
>     folder_permissions, raise_exc=debug_mode)
>   File "/zope/ZopeSoftwareHome/lib/python/OFS/Application.py", line 803, in inst
> all_product
>     get_transaction().commit()
>   File "/zope/Zope-2.7.3-SoftwareHome/lib/python/ZODB/Transaction.py", line 252,
>  in commit
>   File "/zope/Zope-2.7.3-SoftwareHome/lib/python/ZODB/Connection.py", line 738,
> in tpc_vote
>   File "/zope/Zope-2.7.3-SoftwareHome/lib/python/ZEO/ClientStorage.py", line 841
> , in tpc_vote
>   File "/zope/Zope-2.7.3-SoftwareHome/lib/python/ZEO/ClientStorage.py", line 825
> , in _check_serials
> ZODB.POSException.ConflictError: database conflict error (serial this txn starte
> d with 0x035b25f36751f988 2005-02-10 18:59:24.215675, serial currently committed
>  0x035b743c6d186822 2005-02-24 17:00:25.569220)
> 
> 
> I guess what I'm asking, before I hack more on OFS/Application.py,
> is this:
> 
> * any ideas re. what on earth could be causing this ConflictError?
>   the product doesn't DO anything fer chrissakes.
>   (Maybe registration is finishing too fast??)
> 
> * Is the PIL stuff in the traceback a red herring or what?
> 



More information about the Zope-Dev mailing list