Remove scope from logcontext if logcontext is top level
parent
227447dc7e
commit
f35bde3892
|
@ -238,7 +238,7 @@ class SynapseRequest(Request):
|
||||||
|
|
||||||
# Start a span
|
# Start a span
|
||||||
span_context = extract_span_context(self.requestHeaders)
|
span_context = extract_span_context(self.requestHeaders)
|
||||||
opentracing.tracer.start_active_span(
|
span = opentracing.tracer.start_active_span(
|
||||||
"incoming-federation-request",
|
"incoming-federation-request",
|
||||||
tags={
|
tags={
|
||||||
"request_id": self.get_request_id(),
|
"request_id": self.get_request_id(),
|
||||||
|
@ -327,7 +327,7 @@ class SynapseRequest(Request):
|
||||||
assert(tags['request_id'] == self.get_request_id())
|
assert(tags['request_id'] == self.get_request_id())
|
||||||
# finish the span if it's there.
|
# finish the span if it's there.
|
||||||
scope.span.set_tag("peer.address", authenticated_entity)
|
scope.span.set_tag("peer.address", authenticated_entity)
|
||||||
scope.close()
|
scope.__exit__(None, None, None)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.request_metrics.stop(self.finish_time, self.code, self.sentLength)
|
self.request_metrics.stop(self.finish_time, self.code, self.sentLength)
|
||||||
|
|
|
@ -50,13 +50,17 @@ class LogContextScopeManager(ScopeManager):
|
||||||
|
|
||||||
enter_logcontext = False
|
enter_logcontext = False
|
||||||
ctx = LoggingContext.current_context()
|
ctx = LoggingContext.current_context()
|
||||||
|
|
||||||
if ctx is LoggingContext.sentinel:
|
if ctx is LoggingContext.sentinel:
|
||||||
# We don't want this scope to affect.
|
# We don't want this scope to affect.
|
||||||
logger.warning("Tried to activate scope outside of loggingcontext")
|
logger.warning("Tried to activate scope outside of loggingcontext")
|
||||||
return Scope(None, span)
|
return Scope(None, span)
|
||||||
elif ctx.scope is not None:
|
elif ctx.scope is not None:
|
||||||
ctx = nested_logging_context("scope")
|
# We want the logging scope to look exactly the same so we give it
|
||||||
|
# a blank suffix
|
||||||
|
ctx = nested_logging_context("")
|
||||||
enter_logcontext = True
|
enter_logcontext = True
|
||||||
|
|
||||||
scope = _LogContextScope(self, span, ctx, enter_logcontext, finish_on_close)
|
scope = _LogContextScope(self, span, ctx, enter_logcontext, finish_on_close)
|
||||||
ctx.scope = scope
|
ctx.scope = scope
|
||||||
return scope
|
return scope
|
||||||
|
@ -82,6 +86,8 @@ class _LogContextScope(Scope):
|
||||||
super(_LogContextScope, self).__exit__(type, value, traceback)
|
super(_LogContextScope, self).__exit__(type, value, traceback)
|
||||||
if self._enter_logcontext:
|
if self._enter_logcontext:
|
||||||
self.logcontext.__exit__(type, value, traceback)
|
self.logcontext.__exit__(type, value, traceback)
|
||||||
|
else: # the logcontext existed before the creation of the scope
|
||||||
|
self.logcontext.scope = None
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
if self.manager.active is not self:
|
if self.manager.active is not self:
|
||||||
|
|
Loading…
Reference in New Issue