[ZCM] [ZC] 1970/ 3 Comment "StorageTransactionError: Multiple simultaneous tpc_begin requests from one"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin at zope.org
Thu Dec 15 14:51:52 EST 2005


Issue #1970 Update (Comment) "StorageTransactionError: Multiple simultaneous tpc_begin requests from one"
 Status Pending, Database/bug medium
To followup, visit:
  http://www.zope.org/Collectors/Zope/1970

==============================================================
= Comment - Entry #3 by tim_one on Dec 15, 2005 2:51 pm

More info from Dieter Maurer, at

http://mail.zope.org/pipermail/zodb-dev/2005-December/009625.html

"""
We see this occationally in ZODB 3.2 in the following situation:

  From time to time our ZEO (running on Solaris) fails
  to create a "TemporaryFile" (because Solaris raises
  an "OSError: error 11 -- resource temporarily unavailabe" from "fdopen").

  Apparently, ZEO does not expect this kind of exception and
  forgets to remove the lock set for this client.
  As a consequence, any further commit trial by this client
  results in the "Multiple simulataneous tpc_begin..." exception.
"""

________________________________________
= Comment - Entry #2 by tim_one on Dec 15, 2005 12:12 pm

Chris, do you have the corresponding ZEO _server_ traceback?  The client-side traceback only tells us that the client is passing on an exception passed _to_ it from the server.  The problem isn't on the client, it's on the server, so the client-side traceback is pretty much useless.
________________________________________
= Request - Entry #1 by chrisw on Dec 15, 2005 11:57 am

In a ZEO cluster the following got spat out by MailingLogger:

08:55 - Traceback (most recent call last):
"lib/python/transaction/_transaction.py",
line 422, in _commitResources
    rm.tpc_begin(self)
  File "lib/python/ZODB/Connection.py", line
446, in tpc_begin
    self._normal_storage.tpc_begin(transaction)
  File "lib/python/ZEO/ClientStorage.py",
line 914, in tpc_begin
    txn._extension, tid, status)
  File "lib/python/ZEO/ServerStub.py", line
232, in tpc_begin
    return self.rpc.call('tpc_begin', id, user, descr, ext, tid, status)
  File "lib/python/ZEO/zrpc/connection.py",
line 536, in call
    raise inst # error raised by server 

This was on one of the clients.
It only happened the once, and no ill effects were detected, although our users are notoriously bad at telling us when things go wrong.

Recording here just so it doesn't get lost in the lists. Would be great to be able to reproduce and fix, but I can't do either ;-)
==============================================================



More information about the Zope-Collector-Monitor mailing list