Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#1709 defect closed fixed (fixed)

defgen incorrectly propagates handled Failures to the outer Deferred

Reported by: Jean-Paul Calderone Owned by:
Priority: highest Milestone:
Component: core Keywords:
Cc: Branch:
Author:

Description


Change History (5)

comment:1 Changed 16 years ago by Jean-Paul Calderone

Keywords: review added
Priority: highhighest

Ready for review in defgen-handle-error-1709

comment:2 Changed 16 years ago by radix

Keywords: review removed

Very happy with the reduction of code and removal of hacks.

I will note that this changes semantics slightly more than the ticket mentions: not only does it stop propagation of Failures from handled deferreds, it also stops propagating successes. I'd bet five bucks there's code that relies on this behavior, but it is undocumented and untested behavior, so I think the branch should still be merged.

comment:3 Changed 16 years ago by Jean-Paul Calderone

Resolution: fixed
Status: newclosed

(In [16779]) Merge defgen-error-handling-1709

Author: exarkun Reviewer: radix Fixes #1709

This changes deferredGenerator-wrapped generator functions to only produce Deferreds which fire with results which are *not* the result of a yield waitForDeferred-wrapped Deferred. The common annoying manifestation of this bug is that a generator which handles an exception from waitForDeferred.getResult() with no subsequent yields would cause the deferredGenerator's result to be that Failure.

comment:4 Changed 16 years ago by Jean-Paul Calderone

(In [16782]) Merge defgen-error-handling-1709

Author: exarkun Reviewer: radix Fixes #1709

This changes deferredGenerator-wrapped generator functions to only produce Deferreds which fire with results which are *not* the result of a yield waitForDeferred-wrapped Deferred. The common annoying manifestation of this bug is that a generator which handles an exception from waitForDeferred.getResult() with no subsequent yields would cause the deferredGenerator's result to be that Failure.

comment:5 Changed 11 years ago by <automation>

Owner: Jean-Paul Calderone deleted
Note: See TracTickets for help on using tickets.