Opened 12 years ago

Closed 12 years ago

#196 closed defect (fixed)

list-mutation race in Tub.stopService

Reported by: Brian Warner Owned by:
Priority: major Milestone: 0.6.4
Component: unknown Version: 0.6.1
Keywords: Cc:

Description

While tracking down a Tahoe test failure, I discovered that pb.Tub.stopService is iterating over the list of self.reconnectors, stopping them one-by-one, but that Reconnector.stopConnecting is also removing them from the list. Mutating a list while you're iterating over it is a no-no, and was resulting in the Tahoe test failing to shut down some of the reconnector's timers, leading to a Dirty Reactor Error.

The fix is easy: wrap that thing in a list() before iterating over it.

Change History (1)

comment:1 Changed 12 years ago by Brian Warner

Resolution: fixed
Status: newclosed

Fixed in [900c2b4]

Note: See TracTickets for help on using tickets.