Hi, FYI, here's an exception that was raised on tainaron. Small patch catching the exception is included below, comments are welcome. ===== Beginn ===== Dec 04 01:38:54 themis mixminiond[10219]: [ERROR] Exception in processing thread; shutting down thread. Dec 04 01:38:54 themis mixminiond[10219]: [ERROR] Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/mixminion/ThreadUtils.py", line 324, in run job() File "/usr/lib/python2.4/site-packages/mixminion/ScheduleUtils.py", line 126, in _background next = self.func() File "./server/ServerMain.py", line 756, in updateDirectoryClient File "/usr/lib/python2.4/site-packages/mixminion/ClientDirectory.py", line 848, in update self.store.update(force=force,now=now,lock=self._lock) File "/usr/lib/python2.4/site-packages/mixminion/ClientDirectory.py", line 617, in update for b in self.bases: b.update(force=force,now=now,lock=lock) File "/usr/lib/python2.4/site-packages/mixminion/ClientDirectory.py", line 403, in update self.updateDirectory(forceDownload=force,now=now,lock=lock) File "/usr/lib/python2.4/site-packages/mixminion/ClientDirectory.py", line 419, in updateDirectory self.downloadDirectory(url=url,lock=lock) File "/usr/lib/python2.4/site-packages/mixminion/ClientDirectory.py", line 430, in downloadDirectory self._downloadDirectoryImpl(url,lock) File "/usr/lib/python2.4/site-packages/mixminion/ClientDirectory.py", line 471, in _downloadDirectoryImpl infile = urllib2.urlopen(request) File "/usr/lib/python2.4/urllib2.py", line 130, in urlopen return _opener.open(url, data) File "/usr/lib/python2.4/urllib2.py", line 358, in open response = self._open(req, data) File "/usr/lib/python2.4/urllib2.py", line 376, in _open '_open', req) File "/usr/lib/python2.4/urllib2.py", line 337, in _call_chain result = func(*args) File "/usr/lib/python2.4/urllib2.py", line 1021, in http_open return self.do_open(httplib.HTTPConnection, req) File "/usr/lib/python2.4/urllib2.py", line 994, in do_open r = h.getresponse() File "/usr/lib/python2.4/httplib.py", line 866, in getresponse response.begin() File "/usr/lib/python2.4/httplib.py", line 336, in begin version, status, reason = self._read_status() File "/usr/lib/python2.4/httplib.py", line 300, in _read_status raise BadStatusLine(line) BadStatusLine Dec 04 01:38:54 themis mixminiond[10219]: [FATAL] One of our threads has halted; shutting down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Server shutting down Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Telling cleanup thread to shut down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Telling processing thread to shut down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Telling delivery thread to shut down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Telling database thread to shut down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Delivery thread shutting down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Cleanup thread shutting down. Dec 04 01:38:54 themis mixminiond[10219]: [INFO] Shutting down database thread Dec 04 01:38:55 themis mixminiond[10219]: [INFO] Server is shut down ===== Ende ===== ===== Beginn ===== Index: ClientDirectory.py =================================================================== --- ClientDirectory.py (revision 11) +++ ClientDirectory.py (revision 12) @@ -24,6 +24,8 @@ import rfc822 import urllib2 +from httplib import HTTPException + import mixminion.Config import mixminion.Crypto import mixminion.NetUtils @@ -481,6 +483,9 @@ else: raise DirectoryDownloadError( "Error connecting to directory server: %s"%e) + except HTTPException, e: + raise DirectoryDownloadError( + "HTTP exception downloading directory: %s"%e) finally: if self.timeout: mixminion.NetUtils.unsetGlobalTimeout() Index: server/ServerMain.py =================================================================== --- server/ServerMain.py (revision 11) +++ server/ServerMain.py (revision 12) @@ -759,7 +759,7 @@ # Randomly retrieve the directory within an hour after # midnight, to avoid hosing the server. nextUpdate += prng.getInt(60)*60 - except mixminion.ClientDirectory.GotInvalidDirectoryError, e: + except mixminion.ClientDirectory.DirectoryDownloadError, e: LOG.warn(str(e)) LOG.warn(" I'll try again in an hour.") nextUpdate = min(succeedingMidnight(time.time()+30), ===== Ende ===== Ciao Tobias -- mbox:admin@tainaron
Attachment:
pgpELaG6rKhRH.pgp
Description: PGP signature