[CalendarServer-changes] [4852] CalendarServer/trunk/twistedcaldav/directory/cachingdirectory.py

source_changes at macosforge.org source_changes at macosforge.org
Thu Dec 10 13:50:11 PST 2009


Revision: 4852
          http://trac.macosforge.org/projects/calendarserver/changeset/4852
Author:   sagen at apple.com
Date:     2009-12-10 13:50:08 -0800 (Thu, 10 Dec 2009)
Log Message:
-----------
Don't let directory-related memcached errors cause a 500

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/directory/cachingdirectory.py

Modified: CalendarServer/trunk/twistedcaldav/directory/cachingdirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/cachingdirectory.py	2009-12-10 19:15:35 UTC (rev 4851)
+++ CalendarServer/trunk/twistedcaldav/directory/cachingdirectory.py	2009-12-10 21:50:08 UTC (rev 4852)
@@ -93,7 +93,11 @@
             if useMemcache:
                 key = "dir|%s|%s" % (indexType, indexKey)
                 self.log_debug("Memcache: storing %s" % (key,))
-                self.directoryService.memcacheSet(key, record)
+                try:
+                    self.directoryService.memcacheSet(key, record)
+                except DirectoryMemcacheError:
+                    self.log_error("Memcache: failed to store %s" % (key,))
+                    pass
 
 
     def removeRecord(self, record):
@@ -291,8 +295,14 @@
             # Check memcache
             if config.Memcached.ClientEnabled:
                 key = "dir|%s|%s" % (indexType, indexKey)
-                record = self.memcacheGet(key)
                 self.log_debug("Memcache: checking %s" % (key,))
+
+                try:
+                    record = self.memcacheGet(key)
+                except DirectoryMemcacheError:
+                    self.log_error("Memcache: failed to get %s" % (key,))
+                    record = None
+
                 if record is None:
                     self.log_debug("Memcache: miss %s" % (key,))
                 else:
@@ -301,7 +311,11 @@
                     return record
 
                 # Check negative memcache
-                val = self.memcacheGet("-%s" % (key,))
+                try:
+                    val = self.memcacheGet("-%s" % (key,))
+                except DirectoryMemcacheError:
+                    self.log_error("Memcache: failed to get -%s" % (key,))
+                    val = None
                 if val == 1:
                     self.log_debug("Memcache: negative %s" % (key,))
                     self._disabledKeys[indexType][indexKey] = time.time()
@@ -324,8 +338,13 @@
 
             if config.Memcached.ClientEnabled:
                 self.log_debug("Memcache: storing (negative) %s" % (key,))
-                self.memcacheSet("-%s" % (key,), 1)
+                try:
+                    self.memcacheSet("-%s" % (key,), 1)
+                except DirectoryMemcacheError:
+                    self.log_error("Memcache: failed to set -%s" % (key,))
+                    pass
 
+
         return None
 
     def queryDirectory(self, recordTypes, indexType, indexKey):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091210/7fcbd944/attachment.html>


More information about the calendarserver-changes mailing list