# HG changeset patch # User Mads Kiilerich # Date 2016-10-31 12:43:48 # 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 --git a/mercurial/httppeer.py b/mercurial/httppeer.py --- a/mercurial/httppeer.py +++ b/mercurial/httppeer.py @@ -63,8 +63,9 @@ class httppeer(wireproto.wirepeer): 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)()