Merge lp:~pconnell/endroid/pinger into lp:endroid

Proposed by Phil Connell
Status: Superseded
Proposed branch: lp:~pconnell/endroid/pinger
Merge into: lp:endroid
Diff against target: 33 lines (+8/-9)
1 file modified
src/endroid/plugins/periodicpinger.py (+8/-9)
To merge this branch: bzr merge lp:~pconnell/endroid/pinger
Reviewer Review Type Date Requested Status
Ensoft Open Source Pending
Review via email: mp+238268@code.launchpad.net

This proposal has been superseded by a proposal from 2014-10-14.

Description of the change

Improve reliability of periodic pinger

- Handle failures in wokkel/twisted (endroid bug 1380972)
- Log async errors for triageability
- Use addCallbacks so that errback is actually called!

To post a comment you must log in.
lp:~pconnell/endroid/pinger updated
99. By Phil Connell <email address hidden>

Remove dead comment

100. By Phil Connell <email address hidden>

Log messages from twisted, rather than letting them go to stderr

101. By Phil Connell <email address hidden>

Log StanzaErrors from pings as debug, to handle bad servers

102. By Phil Connell <email address hidden>

Tag 1.4.6

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/endroid/plugins/periodicpinger.py'
2--- src/endroid/plugins/periodicpinger.py 2014-10-02 12:51:59 +0000
3+++ src/endroid/plugins/periodicpinger.py 2014-10-14 09:55:41 +0000
4@@ -12,6 +12,7 @@
5
6
7 import logging
8+import functools
9 import itertools
10
11 import twisted.internet.task
12@@ -64,16 +65,14 @@
13
14 for server in self.servers:
15 def _fail(fail, server):
16- # If the server returns an error then we don't really care,
17- # since all we want to do is ensure server-to-server
18- # connections are kept open by sending ping traffic and we have
19- # achieved this. So just log for debugging purposes.
20- logging.debug("Failed to ping {}: {}"
21- .format(server, str(fail.value)))
22+ self.log.error(
23+ "Failed to ping {}: {}".format(server, str(fail.value)))
24 def _success(response):
25 pass
26- d = self.usermanagement.ping(server)
27- d.addCallback(_success)
28- d.addErrback(_fail, server)
29+ try:
30+ d = self.usermanagement.ping(server)
31+ except Exception:
32+ self.log.exception("Failed to send ping to {}:".format(server))
33+ d.addCallbacks(_success, functools.partial(_fail, server=server))
34
35

Subscribers

People subscribed via source and target branches