in server/src/main/scala/com/twitter/server/handler/ContentionHandler.scala [32:55]
def apply(req: Request): Future[Response] = {
contentionSnapshot match {
case Some(snapshot) =>
val snap = snapshot.snap()
val deadlockMsg =
if (snap.deadlocks.isEmpty) ""
else {
"DEADLOCKS:\n\n%s\n\n".format(snap.deadlocks.mkString("\n\n"))
}
val msg = "%sBlocked:\n%s\n\nLock Owners:\n%s".format(
deadlockMsg,
snap.blockedThreads.mkString("\n"),
snap.lockOwners.mkString("\n")
)
newOk(msg)
case _ =>
val msg =
"Contention snapshotting is not enabled due to SecurityManager restrictions.\n" +
"Please ensure that the java.lang.management.ManagementPermission(\"control\") is allowed."
newOk(msg)
}
}