diff options
author | Erik Johnston <erik@matrix.org> | 2019-10-10 10:59:07 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2019-10-10 11:11:38 +0100 |
commit | ec0596f2ab4502c9a6183813a7e5dc2a5bfedd48 (patch) | |
tree | f630263eca16eba4cbf046000e0250e67f52c842 | |
parent | Test for sentinel commit (diff) | |
download | synapse-ec0596f2ab4502c9a6183813a7e5dc2a5bfedd48.tar.xz |
Log correct context
-rw-r--r-- | synapse/util/patch_inline_callbacks.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/synapse/util/patch_inline_callbacks.py b/synapse/util/patch_inline_callbacks.py index 4a45824f52..5ef7190b14 100644 --- a/synapse/util/patch_inline_callbacks.py +++ b/synapse/util/patch_inline_callbacks.py @@ -117,7 +117,7 @@ def _check_yield_points(f, changes, start_context): gen = f(*args, **kwargs) - last_yield_line_no = 1 + last_yield_line_no = gen.gi_frame.f_lineno result = None while True: try: @@ -136,7 +136,7 @@ def _check_yield_points(f, changes, start_context): " in %s between %d and end of func" % ( f.__qualname__, - start_context, + expected_context, LoggingContext.current_context(), f.__code__.co_filename, last_yield_line_no, @@ -148,22 +148,22 @@ def _check_yield_points(f, changes, start_context): frame = gen.gi_frame - if isinstance(d, defer.Deferred): + if isinstance(d, defer.Deferred) and not d.called: # This happens if we yield on a deferred that doesn't follow # the log context rules without wrappin in a `make_deferred_yieldable` - if LoggingContext.current_context() != LoggingContext.Sentinel: + if LoggingContext.current_context() is not LoggingContext.sentinel: err = ( - "%s yielded with context %s rather than Sentinel," + "%s yielded with context %s rather than sentinel," " yielded on line %d in %s" % ( frame.f_code.co_name, - start_context, LoggingContext.current_context(), frame.f_lineno, frame.f_code.co_filename, ) ) changes.append(err) + # raise Exception(err) try: result = yield d |