# HG changeset patch # User Mads Kiilerich # Date 1477917828 -3600 # Node ID cac4ca036dff882c71f48f3130b72597d3e1fc64 # Parent 8237c3359db54909151325d6d79806402dfdb1a4 httppeer: make __del__ access to self.urlopener more safe Some errors could in some cases show unfortunate scary and confusing warnings from the httppeer delstructors: abort: nodename nor servname provided, or not known Exception AttributeError: "'httpspeer' object has no attribute 'urlopener'" in > ignored``` To mute that, take 7b15dd9125b3 to the next level and use getattr in __del__. diff -r 8237c3359db5 -r cac4ca036dff mercurial/httppeer.py --- a/mercurial/httppeer.py Sun Oct 30 06:15:09 2016 +0900 +++ b/mercurial/httppeer.py Mon Oct 31 13:43:48 2016 +0100 @@ -63,8 +63,9 @@ self.requestbuilder = urlreq.request def __del__(self): - if self.urlopener: - for h in self.urlopener.handlers: + urlopener = getattr(self, 'urlopener', None) + if urlopener: + for h in urlopener.handlers: h.close() getattr(h, "close_all", lambda : None)()