mirror of
https://github.com/element-hq/synapse
synced 2024-08-19 18:30:24 +00:00
Test for sentinel commit
This commit is contained in:
parent
1d6dd1c294
commit
3e4272961a
1 changed files with 19 additions and 2 deletions
|
@ -146,13 +146,30 @@ def _check_yield_points(f, changes, start_context):
|
||||||
# raise Exception(err)
|
# raise Exception(err)
|
||||||
return getattr(e, "value", None)
|
return getattr(e, "value", None)
|
||||||
|
|
||||||
|
frame = gen.gi_frame
|
||||||
|
|
||||||
|
if isinstance(d, defer.Deferred):
|
||||||
|
# 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:
|
||||||
|
err = (
|
||||||
|
"%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)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = yield d
|
result = yield d
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
result = Failure(e)
|
result = Failure(e)
|
||||||
|
|
||||||
frame = gen.gi_frame
|
|
||||||
|
|
||||||
if LoggingContext.current_context() != expected_context:
|
if LoggingContext.current_context() != expected_context:
|
||||||
# This happens because the context is lost sometime *after* the
|
# This happens because the context is lost sometime *after* the
|
||||||
# previous yield and *after* the current yield. E.g. the
|
# previous yield and *after* the current yield. E.g. the
|
||||||
|
|
Loading…
Reference in a new issue