From: Arno W. <ar...@us...> - 2004-09-30 20:43:53
|
Update of /cvsroot/mnet/mnet/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18659/common Modified Files: Tag: branch_v062 BrokerVersion.py Conversation.py CryptoCommsHandler.py DoQ.py MojoHandicapper.py MojoMessage.py MojoTransaction.py TCPCommsHandler.py counterparties.py localblockstore.py mojobootpage.py mojostd.py peerman.py Log Message: various fixes and changes, Nano 384 Index: BrokerVersion.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/BrokerVersion.py,v retrieving revision 1.438.2.21 retrieving revision 1.438.2.22 diff -u -d -r1.438.2.21 -r1.438.2.22 --- BrokerVersion.py 25 Apr 2004 18:47:52 -0000 1.438.2.21 +++ BrokerVersion.py 30 Sep 2004 20:43:39 -0000 1.438.2.22 @@ -24,7 +24,7 @@ major = 0 # this will go to `1' when it is ready for widespread public use !? minor = 6 # release number micro = 2 # bugfix release number -nano = 383 # everytime a developer changes anything that anyone might care about, he bumps this one +nano = 384 # everytime a developer changes anything that anyone might care about, he bumps this one flag = "STABLE" versiontup = (major, minor, micro, nano,) Index: Conversation.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/Conversation.py,v retrieving revision 1.24 retrieving revision 1.24.2.1 diff -u -d -r1.24 -r1.24.2.1 --- Conversation.py 18 Feb 2004 06:09:08 -0000 1.24 +++ Conversation.py 30 Sep 2004 20:43:40 -0000 1.24.2.1 @@ -390,11 +390,11 @@ msgId = idlib.make_id(inmsg, 'msg') self._map_cid_to_freshness_proof[counterparty_id] = msgId + self._MTM._peerman.mark_as_live(counterparty_id) result = self._process(inmsg, msgId, counterparty_id, commstrat) assert result is not None, "Result must not be `None'." + " -- " + "result: %s" % humanreadable.hr(result) assert (result is MojoConstants.NO_RESPONSE) or (result is MojoConstants.ASYNC_RESPONSE) or ((type(result) in (types.TupleType, types.ListType,)) and (len(result) == 2) and is_mojo_message(result[0]) and CommHints.is_hint(result[1])), "postcondition: Result must be either MojoConstants.NO_RESPONSE or MojoConstants.ASYNC_RESPONSE or else a tuple whose first element is the full msg body dict, containing either a \"mojo header\" subdict or a \"mojo message\" subdict or both." + "--" + "result: %s" % humanreadable.hr(result) - self._MTM._peerman.mark_as_live(counterparty_id) if result not in (MojoConstants.ASYNC_RESPONSE, MojoConstants.NO_RESPONSE): self.send_response(msgId, result[0], hint=result[1]) Index: CryptoCommsHandler.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/CryptoCommsHandler.py,v retrieving revision 1.21.2.1 retrieving revision 1.21.2.2 diff -u -d -r1.21.2.1 -r1.21.2.2 --- CryptoCommsHandler.py 23 Apr 2004 16:56:51 -0000 1.21.2.1 +++ CryptoCommsHandler.py 30 Sep 2004 20:43:40 -0000 1.21.2.2 @@ -120,7 +120,7 @@ if not cs: fast_fail_handler(badcommstrat=cs, failure_reason="no CommStrat.Crypto for this counterparty") return - + debugprint("TRYING %s to %s for sending", args=(cs, counterparty_id), v=8 , vs="CryComHan") llstrat = cs._lowerstrategy if not llstrat: fast_fail_handler(badcommstrat=cs, failure_reason="no llstrat for this counterparty") Index: DoQ.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/DoQ.py,v retrieving revision 1.22 retrieving revision 1.22.2.1 diff -u -d -r1.22 -r1.22.2.1 --- DoQ.py 11 Aug 2003 20:38:19 -0000 1.22 +++ DoQ.py 30 Sep 2004 20:43:40 -0000 1.22.2.1 @@ -49,7 +49,7 @@ THE_NAME="The DoQ Thread " def __init__(self): - debug.mojolog.write("DoQ: Creating the DoQ.\n", v=4, vs="DoQ") + debug.mojolog.write("DoQ: Creating the DoQ.\n", v=0, vs="DoQ") # Very important to leave this line in for the sake of future historians. self.if_doQ_thread_i_am_i_am_then_start_new_doQ_thread_with_spam = self.dissociate @@ -545,9 +545,11 @@ self._evQ.insert(index, newevent) if index == 0: self._lock.notify() + #debug.mojolog.write("DoQ: added to DoQ(not) with delay %s: %s(%s, %s)\n", args=("%0.2f" % delay, func, args, kwargs,), v=0, vs="DoQ") return schedtime finally: self._lock.release() + #debug.mojolog.write("DoQ: added to DoQ(rel) with delay %s: %s(%s, %s)\n", args=("%0.2f" % delay, func, args, kwargs,), v=0, vs="DoQ") def get_length_of_immediate_queue(self, delay=IDLEDELAY, timer=timeutil.timer): """returns the number of things currently queued to be done in the next second""" Index: MojoHandicapper.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/MojoHandicapper.py,v retrieving revision 1.11 retrieving revision 1.11.2.1 diff -u -d -r1.11 -r1.11.2.1 --- MojoHandicapper.py 2 Dec 2003 17:35:27 -0000 1.11 +++ MojoHandicapper.py 30 Sep 2004 20:43:40 -0000 1.11.2.1 @@ -108,9 +108,9 @@ return DISQUALIFIED else: assert amount >= 0.0 - debugprint("Handicap %s additive %s for %s on %s\n", args=(getnameofhandicapper(h), "%0.2e" % amount, counterparty_id, message_type), v=8, vs="MojoHandicapper") +# debugprint("Handicap %s additive %s for %s on %s\n", args=(getnameofhandicapper(h), "%0.2e" % amount, counterparty_id, message_type), v=8, vs="MojoHandicapper") handicap = handicap + (amount**2) - debugprint("Handicap %s for %s on %s\n", args=("%0.2e" % handicap, counterparty_id, message_type), v=8, vs="MojoHandicapper") +# debugprint("Handicap %s for %s on %s\n", args=("%0.2e" % handicap, counterparty_id, message_type), v=8, vs="MojoHandicapper") return handicap def pick_best(self, counterparties, message_type, message_body): @@ -168,7 +168,7 @@ assert type(counterparties) is types.DictType, "precondition: `counterparties' must be a dict." + " -- " + "counterparties: %s :: %s" % (humanreadable.hr(counterparties), humanreadable.hr(type(counterparties)),) assert type(message_type) == types.StringType, "precondition: `message_type' must be a string." - debugprint("sort_by_preference_dict(counterparties: %s, message_type:%s, message_body: %s)\n", args=(counterparties, message_type, message_body,), v=8, vs="MojoHandicapper") +# debugprint("sort_by_preference_dict(counterparties: %s, message_type:%s, message_body: %s)\n", args=(counterparties, message_type, message_body,), v=8, vs="MojoHandicapper") # contains (counterparty_id, cost) unsorted = [] Index: MojoMessage.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/MojoMessage.py,v retrieving revision 1.11 retrieving revision 1.11.2.1 diff -u -d -r1.11 -r1.11.2.1 --- MojoMessage.py 26 Nov 2003 00:14:55 -0000 1.11 +++ MojoMessage.py 30 Sep 2004 20:43:40 -0000 1.11.2.1 @@ -21,9 +21,7 @@ from DataTypes import BadFormatError, ANY, STRING, UNIQUE_ID, checkTemplate, OptionMarker, NON_NEGATIVE_INTEGER from MojoErrors import MojoMessageError from MojoConstants import DEBUG_MODE -import debug -import idlib -import mencode +import debug, idlib, mencode true = 1 false = 0 @@ -32,6 +30,7 @@ CURRENT_MOJO_VER="0.9991" # Accept messages of the version 0.9991 number or later, up to 2.0 exclusive (reject messages of version 2.0 or later). + # What is the exact problem of ver 2.0 ??? --arnowa 2004-03-05 VER_RE=re.compile("(0[.,]999[1-9][0-9]*|1([.,][0-9]*)?)") Index: MojoTransaction.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/MojoTransaction.py,v retrieving revision 1.75.2.5 retrieving revision 1.75.2.6 diff -u -d -r1.75.2.5 -r1.75.2.6 --- MojoTransaction.py 20 Apr 2004 15:22:57 -0000 1.75.2.5 +++ MojoTransaction.py 30 Sep 2004 20:43:40 -0000 1.75.2.6 @@ -109,8 +109,8 @@ """ def calculate_timeout(mu, sigma, size=500): - return mu + sigma*6 - # return ((mu*size/500) + sigma) #this is similar to what we have in 0.7 ... + #return mu + sigma*6 + return ((mu*size/500) + 6*sigma + 200) #this is similar to what we have in 0.7 ... class Widget: def __init__(self, counterparty_id, firstmsgId=None, payment=0): @@ -741,12 +741,14 @@ debugprint("using global average dynamic timeout %s with for %s to %s\n", args=("%0.2f" % timeout, conversationtype, counterparty_id), v=3, vs='counterparty') else: (mu, sigma, ignore,) = counterparty.get_custom_stat(stat) + timeout = calculate_timeout(sigma, mu) try: timeout = calculate_timeout(sigma, mu, size=len(firstmsgbody)+1000) except: timeout = calculate_timeout(sigma, mu, size=1000) debugprint("using dynamic timeout %s with for %s to %s\n", args=("%0.2f" % timeout, conversationtype, counterparty_id), v=3, vs='counterparty') +# timeout = timeout + 200 def collect_timings(counterparty_id=counterparty_id, starttime=starttime, conversationtype=conversationtype, self=self): """ @@ -1070,7 +1072,8 @@ hmtIds.extend(idlib.chordish_sort_ids(self.mtm.get_id(), mts.keys())) del hmtIds[mojoutil.logish(len(mts)):] - if not PEERMAN: +# if not PEERMAN: + if 2 == 2: hmtIds = mts.keys() debugprint("Set of all known MTs: %s, fingers: %s, set to hello: %s\n", args=(mts.keys(), fingers, hmtIds,), vs="MetaTracker selection", v=6) Index: TCPCommsHandler.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/TCPCommsHandler.py,v retrieving revision 1.15.2.1 retrieving revision 1.15.2.2 diff -u -d -r1.15.2.1 -r1.15.2.2 --- TCPCommsHandler.py 21 Mar 2004 15:43:07 -0000 1.15.2.1 +++ TCPCommsHandler.py 30 Sep 2004 20:43:40 -0000 1.15.2.2 @@ -331,7 +331,7 @@ debug.mojolog.write("TCPCommsHandler was asked to forget unknown commstrat: %s, curcs: %s\n", args=(commstrat, curcs,), v=5, vs="debug") return - # debug.mojolog.write("TCPCommsHandler: Forgetting comm strategy. counterparty_id: %s, curcs: %s\n", args=(counterparty_id, curcs,), v=6, vs="commstrats") + debug.mojolog.write("TCPCommsHandler: Forgetting comm strategy. counterparty_id: %s, curcs: %s\n", args=(counterparty_id, curcs,), v=2, vs="commstrats") # XXX commenting out the following in an experiment at a graceful "lingering" close so as not to kill half-way-through messages. --Zooko (and Arno) 2004-12-16 # remmed = self._conncache.remove_if_present(counterparty_id) Index: counterparties.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/counterparties.py,v retrieving revision 1.23 retrieving revision 1.23.2.1 diff -u -d -r1.23 -r1.23.2.1 --- counterparties.py 2 Feb 2004 04:52:57 -0000 1.23 +++ counterparties.py 30 Sep 2004 20:43:40 -0000 1.23.2.1 @@ -526,7 +526,7 @@ @param historyweight 0.0 = ignore history, 1.0 = ignore new sample """ if historyweight is None: - historyweight = float(confman.dict['COUNTERPARTY'].get('DEFAULT_HISTORY_WEIGHT', 0.75)) + historyweight = float(confman.dict['COUNTERPARTY'].get('DEFAULT_HISTORY_WEIGHT', float(0.75))) assert (historyweight >= 0) and (historyweight <= 1), "a 0.0 <= historyweight <= 1.0 is required" self.synch() try: Index: localblockstore.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/localblockstore.py,v retrieving revision 1.28.2.3 retrieving revision 1.28.2.4 diff -u -d -r1.28.2.3 -r1.28.2.4 --- localblockstore.py 6 Apr 2004 13:10:29 -0000 1.28.2.3 +++ localblockstore.py 30 Sep 2004 20:43:40 -0000 1.28.2.4 @@ -147,7 +147,7 @@ # XXX DOUBLE CHOCOLATEY HACK sometimes trying *again* after one open *without* DB_RECOVER works. self.db_env.open(self.basepath, db_env_open_flags & (~db.DB_RECOVER)) - # debug.mojolog.write("%s.__init__() done normal open()\n", args=(self,), vs='BlockStore', v=2) + debug.mojolog.write("%s.__init__() done normal open()\n", args=(self,), vs='BlockStore', v=2) # keyed on blobid, stores a pickled dict keyed on 'size', 'path', 'stored on', 'last access' and 'num accesses', 'mojo earned' self.index_db = dbobj.DB(self.db_env) self.index_db.open('index.db', db.DB_BTREE, db.DB_CREATE | db.DB_AUTO_COMMIT) @@ -691,6 +691,8 @@ if not os.path.isfile(filename): return 0 return os.path.getsize(filename) + except ValueError: + debug.mojolog.write("VALUE_ERROR %s\n", args=(indexentry,), v=0, vs="ARNO") finally: if txn: txn.commit() @@ -857,7 +859,7 @@ total_ids = {'total': 0L, 'allfiles': 0L} # XXX hack for updating w/in subfunc rebuild_ids = [] def index_directory_visit_func(arg, dirname, names, self=self, rebuild_ids=rebuild_ids, total_ids=total_ids, recountbytes=recountbytes, missing_blobids=missing_blobids) : - # debug.mojolog.write("%s.index_directory_visit_func(%s, %s, %s)\n", args=(self, arg, dirname, names,), vs="debug") + debug.mojolog.write("%s.index_directory_visit_func(%s, %s, %s)\n", args=(self, arg, dirname, names,), vs="debug") if self._shuttingdownflag.isSet(): raise ShutdownException for blobname in names: Index: mojobootpage.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/mojobootpage.py,v retrieving revision 1.36.2.2 retrieving revision 1.36.2.3 diff -u -d -r1.36.2.2 -r1.36.2.3 --- mojobootpage.py 20 Apr 2004 12:22:30 -0000 1.36.2.2 +++ mojobootpage.py 30 Sep 2004 20:43:40 -0000 1.36.2.3 @@ -16,37 +16,23 @@ __cvsid = '$Id$' # Python standard library modules -#BUGBUG import threading -#BUGBUG import copy -import traceback -import asyncore -import socket -import string +import traceback, asyncore, socket, string from StringIO import StringIO -import types -import urlparse -import exceptions +import types, urlparse, exceptions # pyutil modules import DoQ, dictutil, humanreadable from compat import setdefault # Mnet modules -import BrokerVersion -import SEXP -#BUGBUG import idmasklib -#BUGBUG import idlib -import mojoutil +import BrokerVersion, SEXP, mojoutil, CommStrat, debug, mojostd from MojoConstants import true, false -import CommStrat from VersionNumber import VersionNumber from confutils import confman -import debug from debugprint import debugprint, debugstream -import mojostd def assertsafechars(s): - SAFECHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 -_,:{}.[]'" + SAFECHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 -_,:{}.[]/@'" for char in s: if not char in SAFECHARS: debug.mojolog.write("new MULTI_ROOT_ID_TRACKER_CONTACT_INFO ignored, had unsafe char: %s\n" % `char`, vs='mojobootpage') Index: mojostd.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/mojostd.py,v retrieving revision 1.62 retrieving revision 1.62.2.1 diff -u -d -r1.62 -r1.62.2.1 --- mojostd.py 18 Feb 2004 07:27:50 -0000 1.62 +++ mojostd.py 30 Sep 2004 20:43:41 -0000 1.62.2.1 @@ -1162,8 +1162,8 @@ "RUN_LOCALHOST_GATEWAY": "yes", # This gets set to "no" if platform is win32, below. --Zooko 2004-12-17 "RUN_WXBROKER": "yes", "RUN_META_TRACKER": "no", - "RUN_BLOCK_SERVER": "no", - "RUN_CONTENT_TRACKER": "no", + "RUN_BLOCK_SERVER": "yes", + "RUN_CONTENT_TRACKER": "yes", "RUN_RELAY_SERVER": "yes", "SERVE_USING_A_RELAY": "no", @@ -1316,7 +1316,7 @@ # (win32 uses it by default; unix brokers must be run with '--rotated-log') "MAX_ROTATED_LOG_AGE_IN_HOURS": str(24*4), # if running with log rotation, how often should the logs be rotated - "LOG_ROTATION_FREQUENCY_IN_HOURS": str(24), + "LOG_ROTATION_FREQUENCY_IN_HOURS": str(8), }, # configuration values for the user interaction with @@ -1395,8 +1395,8 @@ # well as if they are normal or readonly. "0" : { "PATH": os.path.join(confdefaults["PATH"]["BROKER_DIR"], "blob_server"), - "MAX_MEGABYTES": str(500), - "SUBDIRDEPTH": str(3), + "MAX_MEGABYTES": str(2500), + "SUBDIRDEPTH": str(2), "READONLY": "no", } }, @@ -1447,7 +1447,7 @@ confdefaults["EXTENSION_MODS"] = {} # A list of extension mods. if platform == 'win32': - confdefaults['YES_NO']['RUN_LOCALHOST_GATEWAY'] = "no" + confdefaults['YES_NO']['RUN_LOCALHOST_GATEWAY'] = "no" #WHY?? --arnowa 2004-04-18 ### Exceptions: Index: peerman.py =================================================================== RCS file: /cvsroot/mnet/mnet/common/peerman.py,v retrieving revision 1.34.2.5 retrieving revision 1.34.2.6 diff -u -d -r1.34.2.5 -r1.34.2.6 --- peerman.py 25 Apr 2004 17:09:39 -0000 1.34.2.5 +++ peerman.py 30 Sep 2004 20:43:41 -0000 1.34.2.6 @@ -19,7 +19,7 @@ import mojobootpage from confutils import confman - +from Broker import FRESHNODE import humread import humanreadable @@ -142,11 +142,18 @@ peerIds = {} if servdl: peerIds.update(servdl[0]) + #debugprint("%s i: %s, servdl[i]: %s\n", args=(servtyp, 0, servdl[0].keys()), v=4, vs="PEER") i = 1 - while ((not PEERMAN) or (random.random() < 0.5)) and (len(servdl) > i): + debugprint("FRESHNODE %s\n", args=((time.time() - FRESHNODE),), v=0) + while ((not PEERMAN) or (random.random() < 0.5) or ((time.time() - FRESHNODE)<900)) and (len(servdl) > i): + #debugprint("%s i: %s, servdl[i]: %s\n", args=(servtyp, i, servdl[i].keys()), v=0, vs="PEER") peerIds.update(servdl[i]) i = i + 1 - + while (len(servdl)>i): + if servdl[i]: + pass + #debugprint("%s i: %s, servdl[i]: %s\n", args=(servtyp, i, servdl[i].keys()), v=4, vs="PEERHIDE") + i=i+1 assert self._assert_consistency() return peerIds |