From tdickenson at geminidataloggers.com Tue Jul 2 03:29:06 2002 From: tdickenson at geminidataloggers.com (Toby Dickenson) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: Packages/ZEO - smac.py:1.18 Message-ID: <200207020729.g627T6618302@cvs.baymountain.com> Update of /cvs-repository/Packages/ZEO In directory cvs.zope.org:/tmp/cvs-serv18263 Modified Files: smac.py Log Message: accumulate many strings into single call to send, to minimise the number of packets === Packages/ZEO/smac.py 1.17 => 1.18 === while output: v = output[0] + while len(output)>1 and len(v)<16384: + del output[0] + v += output[0] try: n=self.send(v) except socket.error, err: From tdickenson at geminidataloggers.com Tue Jul 2 03:31:36 2002 From: tdickenson at geminidataloggers.com (Toby Dickenson) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: Packages/ZEO/zrpc - server.py:1.3 client.py:1.3 Message-ID: <200207020731.g627VaR19741@cvs.baymountain.com> Update of /cvs-repository/Packages/ZEO/zrpc In directory cvs.zope.org:/tmp/cvs-serv19728/zrpc Modified Files: server.py client.py Log Message: turn on TCP_NODELAY, in both directions. This avoids latency when a request or response doesnt fit in one packet. ZEO is already doing its best to buffer data before calling send, so TCP_NODELAY can do little harm === Packages/ZEO/zrpc/server.py 1.2 => 1.3 === else: self.create_socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.setsockopt(socket.IPPROTO_TCP, 1, 1) # TCP_NODELAY self.set_reuse_addr() log("listening on %s" % str(self.addr)) self.bind(self.addr) === Packages/ZEO/zrpc/client.py 1.2 => 1.3 === continue s.setblocking(0) + s.setsockopt(socket.IPPROTO_TCP, 1, 1) # TCP_NODELAY self.sockets[s] = addr # connect() raises Connected iff it succeeds # XXX can still block for a while if addr requires DNS From jeremy at zope.com Wed Jul 10 08:55:13 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO/zrpc - log.py:1.1.2.4 Message-ID: <200207101255.g6ACtD327929@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO/zrpc In directory cvs.zope.org:/tmp/cvs-serv27513/zrpc Modified Files: Tag: Standby-branch log.py Log Message: Truncate long messages. === StandaloneZODB/ZEO/zrpc/log.py 1.1.2.3 => 1.1.2.4 === global _label _label = "zrpc:%s" % os.getpid() +MAX_MSG_SIZE = 1024 + def log(message, level=zLOG.BLATHER, label=None, error=None): + # XXX truncate long messages for now to work around + # ZLogger problem. + if len(message) > MAX_MSG_SIZE: + message = message[:MAX_MSG_SIZE] zLOG.LOG(label or _label, level, message, error=error) REPR_LIMIT = 40 From jeremy at zope.com Tue Jul 16 14:30:04 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO - start.py:1.35 Message-ID: <200207161830.g6GIU4L05466@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO In directory cvs.zope.org:/tmp/cvs-serv5455 Modified Files: start.py Log Message: Import code formatting and use 2.1isms such as string methods. === StandaloneZODB/ZEO/start.py 1.34 => 1.35 === # ############################################################################## """Start the server storage. -""" -__version__ = "$Revision$"[11:-2] +$Id$ +""" -import sys, os, getopt, string +import sys, os, getopt +import types def directory(p, n=1): - d=p + d = p while n: - d=os.path.split(d)[0] - if not d or d=='.': d=os.getcwd() - n=n-1 - + d = os.path.split(d)[0] + if not d or d=='.': + d = os.getcwd() + n -= 1 return d def get_storage(m, n, cache={}): p=sys.path d, m = os.path.split(m) - if m[-3:]=='.py': m=m[:-3] - im=cache.get((d,m), 0) - if im==0: - if d: p=[d]+p + if m.endswith('.py'): + m = m[:-3] + im = cache.get((d, m)) + if im is None: + if d: + p = [d] + p import imp - im=imp.find_module(m,p) - im=imp.load_module(m, im[0], im[1], im[2]) - cache[(d,m)]=im + im = imp.find_module(m, p) + im = imp.load_module(m, *im) + cache[(d, m)] = im return getattr(im, n) - def main(argv): - me=argv[0] + me = argv[0] sys.path.insert(0, directory(me, 2)) # XXX hack for profiling support global unix, storages, zeo_pid, asyncore - args=[] - last='' + args = [] + last = '' for a in argv[1:]: - if (a[:1] != '-' and string.find(a, '=') > 0 - and last != '-S' # lame, sorry - ): - a=string.split(a,'=') - os.environ[a[0]]=string.join(a[1:],'=') + if (a[:1] != '-' and a.find('=') > 0 and last != '-S'): # lame, sorry + a = a.split("=") + os.environ[a[0]] = "=".join(a[1:]) continue args.append(a) - last=a + last = a if os.environ.has_key('INSTANCE_HOME'): - INSTANCE_HOME=os.environ['INSTANCE_HOME'] + INSTANCE_HOME = os.environ['INSTANCE_HOME'] elif os.path.isdir(os.path.join(directory(me, 4),'var')): - INSTANCE_HOME=directory(me, 4) + INSTANCE_HOME = directory(me, 4) else: - INSTANCE_HOME=os.getcwd() + INSTANCE_HOME = os.getcwd() if os.path.isdir(os.path.join(INSTANCE_HOME, 'var')): - var=os.path.join(INSTANCE_HOME, 'var') + var = os.path.join(INSTANCE_HOME, 'var') else: - var=INSTANCE_HOME + var = INSTANCE_HOME - zeo_pid=os.environ.get('ZEO_SERVER_PID', - os.path.join(var, 'ZEO_SERVER.pid') - ) + zeo_pid = os.environ.get('ZEO_SERVER_PID', + os.path.join(var, 'ZEO_SERVER.pid')) fs = os.path.join(var, 'Data.fs') @@ -168,9 +167,9 @@ print usage print 'Unrecognizd arguments: ', string.join(args[1:]) sys.exit(1) - fs=args[0] + fs = args[0] - __builtins__.__debug__=debug +## __builtins__.__debug__ = debug if debug: os.environ['Z_DEBUG_MODE'] = '1' if detailed: @@ -184,13 +183,15 @@ try: import pwd try: - try: UID=string.atoi(UID) - except: pass + try: + UID = int(UID) + except: + pass gid = None - if type(UID) == type(""): + if isinstance(UID, types.StringType): uid = pwd.getpwnam(UID)[2] gid = pwd.getpwnam(UID)[3] - elif type(UID) == type(1): + elif isinstance(UID, types.IntType): uid = pwd.getpwuid(UID)[2] gid = pwd.getpwuid(UID)[3] else: @@ -210,8 +211,10 @@ pass if Z: - try: import posix - except: pass + try: + import posix + except: + pass else: import zdaemon zdaemon.run(sys.argv, '') @@ -255,12 +258,13 @@ except: pass - items=storages.items() + items = storages.items() items.sort() for kv in items: LOG('ZEO Server', INFO, 'Serving %s:\t%s' % kv) - if not unix: unix=host, port + if not unix: + unix = host, port ZEO.StorageServer.StorageServer(unix, storages) @@ -276,13 +280,12 @@ info = sys.exc_info() try: import zLOG - zLOG.LOG("z2", zLOG.PANIC, "Startup exception", - error=info) + zLOG.LOG("z2", zLOG.PANIC, "Startup exception", error=info) except: pass import traceback - apply(traceback.print_exception, info) + traceback.print_exception(*info) sys.exit(0) @@ -310,21 +313,28 @@ # unnecessary, since we now use so_reuseaddr. for ignored in 1,2: for socket in asyncore.socket_map.values(): - try: socket.close() - except: pass + try: + socket.close() + except: + pass for storage in storages.values(): - try: storage.close() - finally: pass + try: + storage.close() + finally: + pass try: from zLOG import LOG, INFO - LOG('ZEO Server', INFO, - "Shutting down (%s)" % (die and "shutdown" or "restart") - ) - except: pass + s = die and "shutdown" or "restart" + LOG('ZEO Server', INFO, "Shutting down (%s)" % s) + except: + pass - if die: sys.exit(0) - else: sys.exit(1) + if die: + sys.exit(0) + else: + sys.exit(1) -if __name__=='__main__': main(sys.argv) +if __name__=='__main__': + main(sys.argv) From jeremy at zope.com Thu Jul 25 12:47:02 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO - start.py:1.36 Message-ID: <200207251647.g6PGl2J02016@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO In directory cvs.zope.org:/tmp/cvs-serv2005 Modified Files: start.py Log Message: Remove last reference to string module. === StandaloneZODB/ZEO/start.py 1.35 => 1.36 === $Id$ """ +from __future__ import nested_scopes import sys, os, getopt import types @@ -23,7 +24,7 @@ d = p while n: d = os.path.split(d)[0] - if not d or d=='.': + if not d or d == '.': d = os.getcwd() n -= 1 return d @@ -43,10 +44,65 @@ cache[(d, m)] = im return getattr(im, n) +def set_uid(uid): + """Try to set uid and gid based on -u argument. + + This will only work if this script is run by root. + """ + try: + import pwd + except ImportError: + LOG('ZEO Server', INFO, ("Can't set uid to %s." + "pwd module is not available." % uid)) + return + try: + gid = None + try: + UID = int(UID) + except: # conversion could raise all sorts of errors + uid = pwd.getpwnam(UID)[2] + gid = pwd.getpwnam(UID)[3] + else: + uid = pwd.getpwuid(UID)[2] + gid = pwd.getpwuid(UID)[3] + if gid is not None: + try: + os.setgid(gid) + except OSError: + pass + try: + os.setuid(uid) + except OSError: + pass + except KeyError: + LOG('ZEO Server', ERROR, ("can't find UID %s" % UID)) + +def setup_signals(storages): + try: + import signal + except ImportError: + return + + try: + xfsz = signal.SIFXFSZ + except AttributeError: + pass + else: + signal.signal(xfsz, signal.SIG_IGN) + signal.signal(signal.SIGTERM, lambda sig, frame: shutdown(storages)) + signal.signal(signal.SIGINT, lambda sig, frame: shutdown(storages, 0)) + try: + signal.signal(signal.SIGHUP, rotate_logs_handler) + except: + pass + def main(argv): me = argv[0] sys.path.insert(0, directory(me, 2)) + global LOG, INFO, ERROR + from zLOG import LOG, INFO, ERROR, PANIC + # XXX hack for profiling support global unix, storages, zeo_pid, asyncore @@ -137,21 +193,21 @@ prof = None detailed = 0 for o, v in opts: - if o=='-p': + if o =='-p': port = int(v) - elif o=='-h': + elif o =='-h': host = v - elif o=='-U': + elif o =='-U': unix = v - elif o=='-u': + elif o =='-u': UID = v - elif o=='-D': + elif o =='-D': debug = 1 - elif o=='-d': + elif o =='-d': detailed = 1 - elif o=='-s': + elif o =='-s': Z = 0 - elif o=='-P': + elif o =='-P': prof = v if prof: @@ -165,7 +221,7 @@ if args: if len(args) > 1: print usage - print 'Unrecognizd arguments: ', string.join(args[1:]) + print 'Unrecognizd arguments: ', " ".join(args[1:]) sys.exit(1) fs = args[0] @@ -175,41 +231,8 @@ if detailed: os.environ['STUPID_LOG_SEVERITY'] = '-300' - from zLOG import LOG, INFO, ERROR - - # Try to set uid to "-u" -provided uid. - # Try to set gid to "-u" user's primary group. - # This will only work if this script is run by root. - try: - import pwd - try: - try: - UID = int(UID) - except: - pass - gid = None - if isinstance(UID, types.StringType): - uid = pwd.getpwnam(UID)[2] - gid = pwd.getpwnam(UID)[3] - elif isinstance(UID, types.IntType): - uid = pwd.getpwuid(UID)[2] - gid = pwd.getpwuid(UID)[3] - else: - raise KeyError - try: - if gid is not None: - try: - os.setgid(gid) - except OSError: - pass - os.setuid(uid) - except OSError: - pass - except KeyError: - LOG('ZEO Server', ERROR, ("can't find UID %s" % UID)) - except: - pass - + set_uid(uid) + if Z: try: import posix @@ -223,13 +246,13 @@ import ZEO.StorageServer, asyncore - storages={} + storages = {} for o, v in opts: - if o=='-S': - n, m = string.split(v,'=') - if string.find(m,':'): + if o == '-S': + n, m = v.split("=", 1) + if m.find(":") >= 0: # we got an attribute name - m, a = string.split(m,':') + m, a = m.split(':') else: # attribute name must be same as storage name a=n @@ -240,23 +263,7 @@ storages['1']=ZODB.FileStorage.FileStorage(fs) # Try to set up a signal handler - try: - import signal - - try: - signal.signal(signal.SIFXFSZ, signal.SIG_IGN) - except AttributeError: - pass - signal.signal(signal.SIGTERM, - lambda sig, frame, s=storages: shutdown(s)) - signal.signal(signal.SIGINT, - lambda sig, frame, s=storages: shutdown(s, 0)) - try: - signal.signal(signal.SIGHUP, rotate_logs_handler) - except: - pass - except: - pass + setup_signals(storages) items = storages.items() items.sort() @@ -279,8 +286,7 @@ # Log startup exception and tell zdaemon not to restart us. info = sys.exc_info() try: - import zLOG - zLOG.LOG("z2", zLOG.PANIC, "Startup exception", error=info) + LOG("z2", PANIC, "Startup exception", error=info) except: pass @@ -288,8 +294,20 @@ traceback.print_exception(*info) sys.exit(0) - - asyncore.loop() + + try: + asyncore.loop() + except SystemExit: + raise + except: + info = sys.exc_info() + try: + LOG("ZEO Server", PANIC, "Unexpected error", error=info) + except: + pass + import traceback + traceback.print_exception(*info) + sys.exit(1) def rotate_logs(): import zLOG From jeremy at zope.com Thu Jul 25 12:47:55 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: StandaloneZODB/ZEO/zrpc - server.py:1.4 Message-ID: <200207251647.g6PGltW02358@cvs.baymountain.com> Update of /cvs-repository/StandaloneZODB/ZEO/zrpc In directory cvs.zope.org:/tmp/cvs-serv2347 Modified Files: server.py Log Message: Remove use of TCP_NODELAY. I was always uncomfortable with this, but its portability is a simple justification for removing it. === StandaloneZODB/ZEO/zrpc/server.py 1.3 => 1.4 === self.create_socket(socket.AF_INET, socket.SOCK_STREAM) else: self.create_socket(socket.AF_UNIX, socket.SOCK_STREAM) - self.setsockopt(socket.IPPROTO_TCP, 1, 1) # TCP_NODELAY self.set_reuse_addr() log("listening on %s" % str(self.addr)) self.bind(self.addr) From jeremy at zope.com Thu Jul 25 19:08:33 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZODB3/ZEO - start.py:1.37 Message-ID: <200207252308.g6PN8Xl17786@cvs.baymountain.com> Update of /cvs-repository/ZODB3/ZEO In directory cvs.zope.org:/tmp/cvs-serv17775 Modified Files: start.py Log Message: Fix use of uid/UID with set_uid() func. === ZODB3/ZEO/start.py 1.36 => 1.37 === cache[(d, m)] = im return getattr(im, n) -def set_uid(uid): +def set_uid(arg): """Try to set uid and gid based on -u argument. This will only work if this script is run by root. @@ -58,13 +58,13 @@ try: gid = None try: - UID = int(UID) + arg = int(arg) except: # conversion could raise all sorts of errors - uid = pwd.getpwnam(UID)[2] - gid = pwd.getpwnam(UID)[3] + uid = pwd.getpwnam(arg)[2] + gid = pwd.getpwnam(arg)[3] else: - uid = pwd.getpwuid(UID)[2] - gid = pwd.getpwuid(UID)[3] + uid = pwd.getpwuid(arg)[2] + gid = pwd.getpwuid(arg)[3] if gid is not None: try: os.setgid(gid) @@ -75,7 +75,7 @@ except OSError: pass except KeyError: - LOG('ZEO Server', ERROR, ("can't find UID %s" % UID)) + LOG('ZEO Server', ERROR, ("can't find uid %s" % arg)) def setup_signals(storages): try: @@ -231,7 +231,7 @@ if detailed: os.environ['STUPID_LOG_SEVERITY'] = '-300' - set_uid(uid) + set_uid(UID) if Z: try: From jeremy at zope.com Fri Jul 26 16:02:02 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZODB3/ZEO - StorageServer.py:1.39 Message-ID: <200207262002.g6QK22527840@cvs.baymountain.com> Update of /cvs-repository/ZODB3/ZEO In directory cvs.zope.org:/tmp/cvs-serv27775 Modified Files: StorageServer.py Log Message: Revise log messages for blocked transactions. Log message less choppy. There was an info-level log call when a transaction was blocked, but not a complementary one when the transaction was resumed. Added the latter, so that the log provides a clear record of whether the server is wedged or working. === ZODB3/ZEO/StorageServer.py 1.38 => 1.39 === if self.__storage._transaction: d = Delay() self.__storage._waiting.append((d, self)) - self._log("Transaction block waiting for storage. " + self._log("Transaction blocked waiting for storage. " "%d clients waiting." % len(self.__storage._waiting)) return d else: @@ -363,6 +363,12 @@ delay, zeo_storage = self.__storage._waiting.pop(0) if self._restart(zeo_storage, delay): break + if self.__storage._waiting: + n = len(self.__storage._waiting) + self._log("Blocked transaction restarted. " + "%d clients waiting." % n) + else: + self._log("Blocked transaction restarted.") def _restart(self, zeo_storage, delay): # call the restart() method on the appropriate server From jeremy at zope.com Fri Jul 26 16:31:04 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZODB3/ZEO - trigger.py:1.7 Message-ID: <200207262031.g6QKV4c00620@cvs.baymountain.com> Update of /cvs-repository/ZODB3/ZEO In directory cvs.zope.org:/tmp/cvs-serv609 Modified Files: trigger.py Log Message: Reformat a smidgeon of code. === ZODB3/ZEO/trigger.py 1.6 => 1.7 === w.setsockopt(socket.IPPROTO_TCP, 1, 1) # tricky: get a pair of connected sockets - host='127.0.0.1' - port=19999 + host = '127.0.0.1' + port = 19999 while 1: try: - self.address=(host, port) + self.address = host, port a.bind(self.address) break except: if port <= 19950: raise 'Bind Error', 'Cannot bind trigger!' - port=port - 1 + port -= 1 - a.listen (1) - w.setblocking (0) + a.listen(1) + w.setblocking(0) try: - w.connect (self.address) + w.connect(self.address) except: pass r, addr = a.accept() a.close() - w.setblocking (1) + w.setblocking(1) self.trigger = w - asyncore.dispatcher.__init__ (self, r) + asyncore.dispatcher.__init__(self, r) self.lock = thread.allocate_lock() self.thunks = [] self._trigger_connected = 0 - def __repr__ (self): + def __repr__(self): return '' % id(self) - def readable (self): + def readable(self): return 1 - def writable (self): + def writable(self): return 0 - def handle_connect (self): + def handle_connect(self): pass - def pull_trigger (self, thunk=None): + def pull_trigger(self, thunk=None): if thunk: try: self.lock.acquire() - self.thunks.append (thunk) + self.thunks.append(thunk) finally: self.lock.release() - self.trigger.send ('x') + self.trigger.send('x') - def handle_read (self): - self.recv (8192) + def handle_read(self): + self.recv(8192) try: self.lock.acquire() for thunk in self.thunks: From jeremy at zope.com Fri Jul 26 16:49:39 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZODB3/ZEO/zrpc - client.py:1.4 Message-ID: <200207262049.g6QKndg02370@cvs.baymountain.com> Update of /cvs-repository/ZODB3/ZEO/zrpc In directory cvs.zope.org:/tmp/cvs-serv2359/zrpc Modified Files: client.py Log Message: Remove sockopt to TCP_NODELAY. It's not a good idea to set this option. === ZODB3/ZEO/zrpc/client.py 1.3 => 1.4 === domain, err), level=zLOG.ERROR) continue s.setblocking(0) - s.setsockopt(socket.IPPROTO_TCP, 1, 1) # TCP_NODELAY self.sockets[s] = addr # connect() raises Connected iff it succeeds # XXX can still block for a while if addr requires DNS From jeremy at zope.com Fri Jul 26 16:54:48 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZODB3/ZEO/zrpc - connection.py:1.4 Message-ID: <200207262054.g6QKsmB02876@cvs.baymountain.com> Update of /cvs-repository/ZODB3/ZEO/zrpc In directory cvs.zope.org:/tmp/cvs-serv2865/zrpc Modified Files: connection.py Log Message: Use short_repr() for log at BLATHER level for method invocation. I think this is the log call that has been killing backends by sending very large strings. === ZODB3/ZEO/zrpc/connection.py 1.3 => 1.4 === def handle_reply(self, msgid, flags, args): if __debug__: - log("recv reply: %s, %s, %s" % (msgid, flags, str(args)[:40]), + log("recv reply: %s, %s, %s" % (msgid, flags, short_repr(args)), level=zLOG.DEBUG) self.__reply = msgid, flags, args self.__reply_lock.release() # will fail if lock is unlocked @@ -162,14 +162,15 @@ msg = "Invalid method name: %s on %s" % (name, repr(self.obj)) raise ZRPCError(msg) if __debug__: - log("%s%s" % (name, args), level=zLOG.BLATHER) + log("%s%s" % (name, short_repr(args)), level=zLOG.BLATHER) meth = getattr(self.obj, name) try: ret = meth(*args) except Exception, msg: error = sys.exc_info()[:2] - log("%s() raised exception: %s" % (name, msg), zLOG.ERROR, error=sys.exc_info()) + log("%s() raised exception: %s" % (name, msg), + zLOG.ERROR, error=sys.exc_info()) return self.return_error(msgid, flags, error[0], error[1]) if flags & ASYNC: From jeremy at zope.com Mon Jul 29 14:37:30 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO - version.txt:1.2 Message-ID: <200207291837.g6TIbUR13045@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO In directory cvs.zope.org:/tmp/cvs-serv13034 Added Files: version.txt Log Message: A simple way to track the current version number. === ZEO/ZEO/version.txt 1.1 => 1.2 === +2.0a1 + From jeremy at zope.com Mon Jul 29 14:46:31 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO - ClientStorage.py:1.41.4.1 StorageServer.py:1.39.2.1 Message-ID: <200207291846.g6TIkVi13998@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO In directory cvs.zope.org:/tmp/cvs-serv13969 Modified Files: Tag: ZODB4-ZEO-branch ClientStorage.py StorageServer.py Log Message: Track API changes for ZODB4. === ZEO/ZEO/ClientStorage.py 1.41 => 1.41.4.1 === self._cache.close() self._rpc_mgr.close() - def registerDB(self, db, limit): + def registerDB(self, db): """Register that the storage is controlled by the given DB.""" - log2(INFO, "registerDB(%s, %s)" % (repr(db), repr(limit))) + log2(INFO, "registerDB(%s)" % (repr(db))) self._db = db def is_connected(self): === ZEO/ZEO/StorageServer.py 1.39 => 1.39.2.1 === from ZODB.POSException import StorageError, StorageTransactionError, \ TransactionError, ReadOnlyError from ZODB.referencesf import referencesf -from ZODB.Transaction import Transaction +from ZODB.ZTransaction import Transaction from ZODB.TmpStore import TmpStore # We create a special fast pickler! This allows us From jeremy at zope.com Mon Jul 29 14:46:31 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO/tests - Cache.py:1.8.4.1 CommitLockTests.py:1.2.4.1 ThreadTests.py:1.2.4.1 forker.py:1.16.4.1 testZEO.py:1.25.4.1 Message-ID: <200207291846.g6TIkVj14004@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO/tests In directory cvs.zope.org:/tmp/cvs-serv13969/tests Modified Files: Tag: ZODB4-ZEO-branch Cache.py CommitLockTests.py ThreadTests.py forker.py testZEO.py Log Message: Track API changes for ZODB4. === ZEO/ZEO/tests/Cache.py 1.8 => 1.8.4.1 === ############################################################################## """Tests of the ZEO cache""" -from ZODB.Transaction import Transaction +from ZODB.ZTransaction import Transaction from ZODB.tests.MinPO import MinPO from ZODB.tests.StorageTestBase import zodb_unpickle === ZEO/ZEO/tests/CommitLockTests.py 1.2 => 1.2.4.1 === import threading -from ZODB.Transaction import Transaction +from ZODB.ZTransaction import Transaction from ZODB.tests.StorageTestBase import zodb_pickle, MinPO import ZEO.ClientStorage === ZEO/ZEO/tests/ThreadTests.py 1.2 => 1.2.4.1 === import threading -from ZODB.Transaction import Transaction +from ZODB.ZTransaction import Transaction from ZODB.tests.StorageTestBase import zodb_pickle, MinPO import ZEO.ClientStorage === ZEO/ZEO/tests/forker.py 1.16 => 1.16.4.1 === rd, wr = os.pipe() pid = os.fork() if pid == 0: - import ZEO.zrpc.log - reload(ZEO.zrpc.log) try: - if PROFILE: - p = hotshot.Profile("stats.s.%d" % os.getpid()) - p.runctx("run_server(storage, addr, rd, wr)", - globals(), locals()) - p.close() - else: - run_server(addr, rd, wr, storage_name, args) - except: - print "Exception in ZEO server process" - traceback.print_exc() - os._exit(0) + import ZEO.zrpc.log + reload(ZEO.zrpc.log) + try: + if PROFILE: + p = hotshot.Profile("stats.s.%d" % os.getpid()) + p.runctx("run_server(storage, addr, rd, wr)", + globals(), locals()) + p.close() + else: + run_server(addr, rd, wr, storage_name, args) + except: + print "Exception in ZEO server process" + traceback.print_exc() + finally: + os._exit(0) else: os.close(rd) return pid, ZEOClientExit(wr) === ZEO/ZEO/tests/testZEO.py 1.25 => 1.25.4.1 === import ZEO.ClientStorage, ZEO.StorageServer import ThreadedAsync, ZEO.trigger from ZODB.FileStorage import FileStorage -from ZODB.Transaction import Transaction +from ZODB.ZTransaction import Transaction from ZODB.tests.StorageTestBase import zodb_pickle, MinPO import zLOG @@ -88,7 +88,7 @@ self._pids = [pid] self._servers = [exit] self._storage = PackWaitWrapper(client) - client.registerDB(DummyDB(), None) + client.registerDB(DummyDB()) def tearDown(self): self.running = 0 From jeremy at zope.com Mon Jul 29 15:06:53 2002 From: jeremy at zope.com (Jeremy Hylton) Date: Sun Aug 10 16:31:22 2008 Subject: [ZEO-Checkins] CVS: ZEO/ZEO/tests - CommitLockTests.py:1.2.4.2 testZEO.py:1.25.4.2 Message-ID: <200207291906.g6TJ6rS16085@cvs.baymountain.com> Update of /cvs-repository/ZEO/ZEO/tests In directory cvs.zope.org:/tmp/cvs-serv16072/ZEO/tests Modified Files: Tag: ZODB4-ZEO-branch CommitLockTests.py testZEO.py Log Message: Fix a couple more uses of old-style registerDB(). === ZEO/ZEO/tests/CommitLockTests.py 1.2.4.1 => 1.2.4.2 === # address. addr = self._storage._rpc_mgr.addr[0][1] new = ZEO.ClientStorage.ClientStorage(addr, wait=1) - new.registerDB(DummyDB(), None) + new.registerDB(DummyDB()) return new def _get_timestamp(self): === ZEO/ZEO/tests/testZEO.py 1.25.4.1 => 1.25.4.2 === storage = ZEO.ClientStorage.ClientStorage(zeo_addr, wait=1, min_disconnect_poll=0.1) self._storage = PackWaitWrapper(storage) - storage.registerDB(DummyDB(), None) + storage.registerDB(DummyDB()) def tearDown(self): self._storage.close()