[1516] CalendarServer/trunk/lib-patches/Twisted/twisted.web2.dav.xattrprops .patch
Revision: 1516 http://trac.macosforge.org/projects/calendarserver/changeset/1516 Author: tfitz@apple.com Date: 2007-05-08 01:26:19 -0700 (Tue, 08 May 2007) Log Message: ----------- Retry xattr set if it fails with EAGAIN. Modified Paths: -------------- CalendarServer/trunk/lib-patches/Twisted/twisted.web2.dav.xattrprops.patch Modified: CalendarServer/trunk/lib-patches/Twisted/twisted.web2.dav.xattrprops.patch =================================================================== --- CalendarServer/trunk/lib-patches/Twisted/twisted.web2.dav.xattrprops.patch 2007-05-07 23:14:13 UTC (rev 1515) +++ CalendarServer/trunk/lib-patches/Twisted/twisted.web2.dav.xattrprops.patch 2007-05-08 08:26:19 UTC (rev 1516) @@ -2,7 +2,17 @@ =================================================================== --- twisted/web2/dav/xattrprops.py (revision 19773) +++ twisted/web2/dav/xattrprops.py (working copy) -@@ -66,16 +66,8 @@ +@@ -33,6 +33,9 @@ + + import urllib + import sys ++from time import sleep ++from random import random ++from errno import EAGAIN + + import xattr + +@@ -66,16 +69,8 @@ deadPropertyXattrPrefix = "user." def _encode(clazz, name): @@ -21,3 +31,21 @@ return r def _decode(clazz, name): +@@ -109,7 +104,16 @@ + return doc.root_element + + def set(self, property): +- self.attrs[self._encode(property.qname())] = property.toxml() ++ for n in range(20): ++ try: ++ self.attrs[self._encode(property.qname())] = property.toxml() ++ except IOError, error: ++ if error.errno != EAGAIN: ++ raise ++ sleep(random() / 10) # OMG Brutal Hax ++ else: ++ break ++ + + # Update the resource because we've modified it + self.resource.fp.restat()
participants (1)
-
source_changes@macosforge.org