summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Hirschhorn <max.hirschhorn@mongodb.com>2018-10-08 14:41:48 -0400
committerMax Hirschhorn <max.hirschhorn@mongodb.com>2018-10-08 14:41:48 -0400
commit8e46857abfa06891512ceef03fb539d7d3f47d13 (patch)
tree34f782de1dc6e20b302811e22bbb3da0688e25b0
parentf30599c506faf40a862bce8e9f309083b3214c59 (diff)
downloadmongo-8e46857abfa06891512ceef03fb539d7d3f47d13.tar.gz
SERVER-37228 Escape ID in addition to label in waits-for graph.
-rw-r--r--buildscripts/gdb/mongo_lock.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/buildscripts/gdb/mongo_lock.py b/buildscripts/gdb/mongo_lock.py
index 9bc2b08e0b7..7ac4e2981ba 100644
--- a/buildscripts/gdb/mongo_lock.py
+++ b/buildscripts/gdb/mongo_lock.py
@@ -169,6 +169,13 @@ class Graph(object):
for to_node in self.nodes[node_key]['next_nodes']:
print(" ->", self.nodes[to_node]['node'])
+ def _get_node_escaped(self, node_key):
+ """Return the name of the node with any double quotes escaped.
+
+ The DOT language requires that literal double quotes be escaped using a backslash character.
+ """
+ return str(self.nodes[node_key]['node']).replace('"', '\\"')
+
def to_graph(self, nodes=None, message=None):
"""Return the 'to_graph'."""
sb = []
@@ -180,19 +187,14 @@ class Graph(object):
sb.append('digraph "mongod+lock-status" {')
for node_key in self.nodes:
for next_node_key in self.nodes[node_key]['next_nodes']:
- sb.append(' "{}" -> "{}";'.format(self.nodes[node_key]['node'],
- self.nodes[next_node_key]['node']))
+ sb.append(' "{}" -> "{}";'.format(
+ self._get_node_escaped(node_key), self._get_node_escaped(next_node_key)))
for node_key in self.nodes:
color = ""
if nodes and node_key in nodes:
color = "color = red"
- # The DOT language requires that literal double quotes be escaped using a backslash
- # character.
- escaped_label = str(self.nodes[node_key]['node']).replace('"', '\\"')
-
- sb.append(' "{}" [label="{}" {}]'.format(self.nodes[node_key]['node'], escaped_label,
- color))
+ sb.append(' "{0}" [label="{0}" {1}]'.format(self._get_node_escaped(node_key), color))
sb.append("}")
return "\n".join(sb)