Ticket #1038 (closed defect: fixed)

Opened 3 years ago

Last modified 2 months ago

Audit TimerService / other looping calls

Reported by: catlee Owned by:
Priority: major Milestone: 0.8.8
Version: 0.8.1 Keywords: simple
Cc:

Description (last modified by dustin) (diff)

Uncaught exceptions in TimerServices cause the service to stop running. Most of the time this isn't what you want to happen, and causes things like ticket #1035.

We need to check for other instances where uncaught exceptions break these loops.

Fixing this bug entails looking for all uses of TimerService or LoopingCall, and make sure that the function they're calling is not allowed to raise an exception or errback.

Change History

comment:1 Changed 3 years ago by dustin

  • Keywords database added

comment:2 Changed 2 years ago by ayust

  • Milestone changed from 0.8.3 to 0.8.+

comment:3 Changed 15 months ago by dustin

  • Keywords database, sprint added; database removed

comment:4 Changed 8 months ago by tom.prince

Needing fixing in d3c9e142c56bcc667d68b611d78bbc494452a3fd:

  • buildbot.util.maildir.MaildirService
  • buildbot.process.builder.Builder.updateStatusService
  • buildbot.clients.tryclient.printStatus
  • buildbot.process.metrics.periodicCheck
  • buildbot.status.words.IrcStatusBot._keepAliveCall
  • contrib/bzr_buildbot.py -- this should use the PollingChageSource instead
  • contrib/googlecode_atom.py -- this should use the `PollingChangeSource? instead

comment:5 Changed 6 months ago by tom.prince

  • Milestone changed from 0.8.+ to 0.8.8

comment:6 Changed 6 months ago by tom.prince

  • Keywords sprint, simple added; sprint removed

comment:7 Changed 4 months ago by dustin

  • Keywords database, removed

comment:8 Changed 4 months ago by Tom Prince

Wrap looping calls in try-except blocks.

LoopingCall? cancels anything after it raises an exception, so catch them before they reach it.

Refs #1038.

Changeset: e394314c3d5e5be8f31022ec927d4be6b901f84d

comment:9 Changed 4 months ago by Tom Prince

Make contributed pollers use PollingChangeSource?.

Refs #1038.

Changeset: 305b227724a6bd5093f3e37b9be37af0818ac7f5

comment:10 Changed 3 months ago by dustin

  • Keywords sprint, removed
  • Description modified (diff)

comment:11 Changed 3 months ago by Tom Prince

Wrap looping calls in try-except blocks.

LoopingCall? cancels anything after it raises an exception, so catch them before they reach it.

Refs #1038.

Changeset: e394314c3d5e5be8f31022ec927d4be6b901f84d

comment:12 Changed 3 months ago by Tom Prince

Make contributed pollers use PollingChangeSource?.

Refs #1038.

Changeset: 305b227724a6bd5093f3e37b9be37af0818ac7f5

comment:13 Changed 3 months ago by dustin

tom, is there anything left here?

comment:14 Changed 3 months ago by dustin

  • Status changed from new to closed
  • Resolution set to fixed

A grep shows nothing left. I added a spot of docs, but otherwise this is done.

comment:15 Changed 3 months ago by Dustin J. Mitchell

add warning about LoopingCall? and TimerService?; refs #1038

Changeset: ff2acf8cb58489a82811b4b5891f00ac36e63e35

comment:16 Changed 2 months ago by Dustin J. Mitchell

add warning about LoopingCall? and TimerService?; refs #1038

Changeset: ff2acf8cb58489a82811b4b5891f00ac36e63e35

Note: See TracTickets for help on using tickets.