{"id":6018,"date":"2016-12-11T18:23:54","date_gmt":"2016-12-11T23:23:54","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=6018"},"modified":"2016-12-11T18:23:54","modified_gmt":"2016-12-11T23:23:54","slug":"simple-awk-script-to-print-blocked-threads","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2016\/12\/11\/simple-awk-script-to-print-blocked-threads\/","title":{"rendered":"Simple awk script to print blocked threads"},"content":{"rendered":"<p>Yet another variation on this theme.  This is good because it will allow you to quickly go to the problem thread.<\/p>\n<pre>\r\n#!\/bin\/awk -f\r\n\r\n{\r\n  if ($0 ~ \"- locked\" || $0 ~ \"- waiting to lock\") {\r\n    s[i++]=$0\r\n  }\r\n}\r\nEND {\r\n  for (i in s) {\r\n    if (s[i] ~ \"waiting to lock\") {\r\n      split(s[i],t)\r\n      for (j in s) {\r\n        split(s[j],u)\r\n        if (s[j] ~ \"- locked\" && u[3] ~ t[5]) {\r\n          print u[3],u[5],\" is blocking \",t[7]\r\n          break\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<pre>\r\nbash-4.1$ awk -f ~\/blocked.awk *1746* | sort | uniq -c | sort -nr | head -5\r\n    283 <0x0000000766283810> atg.adapter.gsa.GSAItem)  is blocking  atg.adapter.gsa.GSAItem)\r\n     43 <0x000000063cbfad60> atg.adapter.gsa.GSAItemDescriptor)  is blocking  atg.adapter.gsa.GSAItemDescriptor)\r\n     11 <0x000000064c282cf8> com.express.commerce.order.ExpressOrderHolder$$EnhancerBySpringCGLIB$$27225c0d)  is blocking  com.express.commerce.order.ExpressOrderHolder$$EnhancerBySpringCGLIB$$27225c0d)\r\n      4 <0x00000006631b15a8> com.express.commerce.order.ExpressOrderImpl)  is blocking  com.express.commerce.order.ExpressOrderImpl)\r\n      3 <0x00000007ab9f9670> com.express.commerce.order.ExpressOrderImpl)  is blocking  com.express.commerce.order.ExpressOrderImpl)\r\nbash-4.1$\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Yet another variation on this theme. This is good because it will allow you to quickly go to the problem thread. #!\/bin\/awk -f { if ($0 ~ &#8220;- locked&#8221; || $0 ~ &#8220;- waiting to lock&#8221;) { s[i++]=$0 } }&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2016\/12\/11\/simple-awk-script-to-print-blocked-threads\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[7,16],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/6018"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=6018"}],"version-history":[{"count":2,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/6018\/revisions"}],"predecessor-version":[{"id":6302,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/6018\/revisions\/6302"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=6018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=6018"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=6018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}