id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc	branch	branch_author	launchpad_bug
3627	TimerService can stop without notice	amaury	amaury	"When the !TimerService function fails (either with an exception or by returning a deferred that will errback) the internal !LoopingCall stops. 

But there is no way for the application to handle this, at least with a public API.
the service.running attribute is still true!
Now I see two workarounds:
 * periodically check service._loop.running
 * override !TimerService._failed and handle the error there.

But I'd prefer a more official way to do this (i.e. without leading underscores).

A solution could be to force a !TimerService to stop when the !LoopingCall terminates. I suggest the change !TimerService._failed like this:

{{{
#!py
    def _failed(self, why):
        self.stopService()
        log.err(why)
}}}

This also removes the need for the ""self._loop.running = False"" statement."	enhancement	new	normal		core			exarkun			
