• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1diff -Naur grpc-1.41.1/src/core/lib/debug/stats_data.cc third_party_grpc_sxy/src/core/lib/debug/stats_data.cc
2--- grpc-1.41.1/src/core/lib/debug/stats_data.cc	2021-10-20 04:14:40.000000000 +0800
3+++ third_party_grpc_sxy/src/core/lib/debug/stats_data.cc	2023-04-20 14:24:54.000000000 +0800
4@@ -282,8 +282,8 @@
5     "Number of streams terminated per TCP write",
6     "Number of flow control updates written per TCP write",
7     // NOLINTNEXTLINE(bugprone-suspicious-missing-comma)
8-    "How many completion queues were checked looking for a CQ that had "
9-    "requested the incoming call",
10+    ("How many completion queues were checked looking for a CQ that had "
11+    "requested the incoming call"),
12 };
13 const int grpc_stats_table_0[65] = {
14     0,      1,      2,      3,      4,     5,     7,     9,     11,    14,
15diff -Naur grpc-1.41.1/src/core/lib/debug/trace.cc third_party_grpc_sxy/src/core/lib/debug/trace.cc
16--- grpc-1.41.1/src/core/lib/debug/trace.cc	2021-10-20 04:14:40.000000000 +0800
17+++ third_party_grpc_sxy/src/core/lib/debug/trace.cc	2023-04-20 14:24:54.000000000 +0800
18@@ -40,45 +40,51 @@
19 TraceFlag* TraceFlagList::root_tracer_ = nullptr;
20
21 bool TraceFlagList::Set(const char* name, bool enabled) {
22-  TraceFlag* t;
23-  if (0 == strcmp(name, "all")) {
24-    for (t = root_tracer_; t; t = t->next_tracer_) {
25+  if (0 == strlen(name)) {
26+    gpr_log(GPR_DEBUG, "No trace flags are changed");
27+  } else if (0 == strcmp(name, "all")) {
28+    for (auto t = root_tracer_; t != nullptr; t = t->next_tracer_) {
29       t->set_enabled(enabled);
30     }
31   } else if (0 == strcmp(name, "list_tracers")) {
32     LogAllTracers();
33   } else if (0 == strcmp(name, "refcount")) {
34-    for (t = root_tracer_; t; t = t->next_tracer_) {
35+    for (auto t = root_tracer_; t != nullptr; t = t->next_tracer_) {
36       if (strstr(t->name_, "refcount") != nullptr) {
37         t->set_enabled(enabled);
38+        break;
39       }
40     }
41   } else {
42-    bool found = false;
43-    for (t = root_tracer_; t; t = t->next_tracer_) {
44+    for (auto t = root_tracer_; t != nullptr; t = t->next_tracer_) {
45       if (0 == strcmp(name, t->name_)) {
46         t->set_enabled(enabled);
47-        found = true;
48+        return true;
49       }
50     }
51     // check for unknowns, but ignore "", to allow to GRPC_TRACE=
52-    if (!found && 0 != strcmp(name, "")) {
53-      gpr_log(GPR_ERROR, "Unknown trace var: '%s'", name);
54-      return false; /* early return */
55-    }
56+    gpr_log(GPR_ERROR, "Unknown trace var: '%s'", name);
57+    return false; /* early return */
58   }
59   return true;
60 }
61
62 void TraceFlagList::Add(TraceFlag* flag) {
63+  gpr_log(GPR_DEBUG, "Add tracer:\t%s", flag->name_);
64+  // prevent cycles at 'Add' flag to 'root_tracer_'
65+  for (auto t = root_tracer_; t != nullptr; t = t->next_tracer_) {
66+    // check if flag is already part of 'root_tracer_'
67+    if (t == flag) {
68+      return;
69+    }
70+  }
71   flag->next_tracer_ = root_tracer_;
72   root_tracer_ = flag;
73 }
74
75 void TraceFlagList::LogAllTracers() {
76   gpr_log(GPR_DEBUG, "available tracers:");
77-  TraceFlag* t;
78-  for (t = root_tracer_; t != nullptr; t = t->next_tracer_) {
79+  for (auto t = root_tracer_; t != nullptr; t = t->next_tracer_) {
80     gpr_log(GPR_DEBUG, "\t%s", t->name_);
81   }
82 }
83