FW: [ZODB-Dev] More exciting ZODB errors ;-)

2005-12-15 Thread Tim Peters
FYI, I also added this info to Chris's other bug report, at

http://www.zope.org/Collectors/Zope/1971


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dieter Maurer
Sent: Thursday, December 15, 2005 11:52 AM
To: Chris Withers
Cc: zodb-dev@zope.org
Subject: Re: [ZODB-Dev] More exciting ZODB errors ;-)

Chris Withers wrote at 2005-12-14 16:23 +:
 ...
   File lib/python/ZODB/Connection.py, line
788, in _setstate_noncurrent
 assert end is not None
AssertionError

This means that the latest modification for this object
lies before the respective transaction.

In this case, we should not have an invalidation for the object,
such that we would not call _setstate_current.

I expect a missing flush_invalidations during Connection._setDB.
I had to add such a call in our ZODB version:

def _setDB(self, odb, mvcc=None, txn_mgr=DEPRECATED_ARGUMENT,
   transaction_manager=None, synch=None):

self.transaction_manager = transaction_manager or
transaction.manager
# DM 2005-08-22: always call '_flush_invalidations' as it does
#  more than cache handling only
self._flush_invalidations()
if self._reset_counter != global_reset_counter:
# New code is in place.  Start a new cache.
self._resetCache()
# DM 2005-08-22: always call '_flush_invalidations'
##else:
##self._flush_invalidations()


-- 
Dieter


___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev


FW: [ZODB-Dev] More exciting ZODB errors ;-)

2005-12-15 Thread Tim Peters
FYI, I added this info to Chris's bug report, at

http://www.zope.org/Collectors/Zope/1970

Thanks!

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dieter Maurer
Sent: Thursday, December 15, 2005 11:02 AM
To: Tim Peters
Cc: 'Chris Withers'; zodb-dev@zope.org
Subject: RE: [ZODB-Dev] More exciting ZODB errors ;-)

Tim Peters wrote at 2005-12-14 12:05 -0500:
 ...
  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
 StorageTransactionError: Multiple simultaneous tpc_begin requests from
one
client.

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.

-- 
Dieter

___
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev