From f05caf392203972db0b0f3a1a08c597f2737adb5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 19:07:09 +0000 Subject: [PATCH] fix(tornado): fix set_tag_str type error when http.route is none [backport 2.10] (#10139) Backport d90c31ded288a2674f8a326c9fcfca81223c400c from #10125 to 2.10. Escalation due to trying to set route as a tag string when it is None. ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) Co-authored-by: William Conti <58711692+wconti27@users.noreply.github.com> --- ddtrace/contrib/tornado/handlers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ddtrace/contrib/tornado/handlers.py b/ddtrace/contrib/tornado/handlers.py index 04877dde2d5..a16ec4e993c 100644 --- a/ddtrace/contrib/tornado/handlers.py +++ b/ddtrace/contrib/tornado/handlers.py @@ -58,7 +58,8 @@ def execute(func, handler, args, kwargs): request_span.set_tag(ANALYTICS_SAMPLE_RATE_KEY, settings.get("analytics_sample_rate", True)) http_route = _find_route(handler.application.default_router.rules, handler.request) - request_span.set_tag_str("http.route", http_route) + if http_route is not None and isinstance(http_route, str): + request_span.set_tag_str("http.route", http_route) setattr(handler.request, REQUEST_SPAN_KEY, request_span) return func(*args, **kwargs)