{"id":50535,"date":"2019-08-08T06:00:36","date_gmt":"2019-08-08T04:00:36","guid":{"rendered":"http:\/\/smeupnew.it\/magazine\/blog\/caso-reale-livelock\/"},"modified":"2021-04-09T09:59:58","modified_gmt":"2021-04-09T07:59:58","slug":"caso-reale-livelock","status":"publish","type":"post","link":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/","title":{"rendered":"Un caso reale di livelock &#8211; parte 10"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling gradient-container-1\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1144px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>Ti sei perso le scorse puntate? Niente paura, eccole qui:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/performance-monitoring-tool-parte-1\/\" target=\"_blank\" rel=\"noopener\">Introduzione ai performance monitoring tool \u2013 parte 1<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/apm-open-source-glowroot\/\" target=\"_blank\" rel=\"noopener\">Esempio di un APM open source per un\u2019app web Java J2EE: Glowroot \u2013 parte 2<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/glowroot-profilazione-transazioni-web\/\" target=\"_blank\" rel=\"noopener\">Glowroot \u2013 Profilazione e transazioni web \u2013 parte 3<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/glowroot-slow-traces\/\" target=\"_blank\" rel=\"noopener\">Glowroot Slow traces \u2013 parte 4<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/monitoring-della-jvm\/\" target=\"_blank\" rel=\"noopener\">Glowroot: monitoring della JVM \u2013 parte 5<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/heap-dump-situazioni-critiche\/\" target=\"_blank\" rel=\"noopener\">Heap dump in situazioni critiche \u2013 parte 6<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/memory-leak\/\" target=\"_blank\" rel=\"noopener\">Un caso reale di memory leak \u2013 parte 7<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/thread-dump-situazioni-critiche\/\" target=\"_blank\" rel=\"noopener\">Thread dump in situazioni critiche \u2013 parte 8<\/a><\/li>\n<li><a href=\"https:\/\/www.smeup.com\/magazine\/blog\/thread-dumps-strumenti-analisi\/\" target=\"_blank\" rel=\"noopener\">Thread dumps e strumenti di analisi \u2013 parte 9<\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A giugno del 2018 in una nostra azienda cliente, la stessa nella quale si \u00e8 manifestato il problema di performance di Web.UP descritto in <a href=\"https:\/\/www.smeup.com\/magazine\/blog\/memory-leak\/\" target=\"_blank\" rel=\"noopener\">questo articolo<\/a> ha iniziato a manifestarsi un comportamento anomalo.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Il comportamento classico della macchina server consisteva in un andamento della CPU stabile, oscillante attorno al 20%. Prima del riavvio della domenica (viene effettuato un riavvio settimanale) inizi\u00f2 a capitare che tale valore nel giro di 24 ore salisse fino al 99% rallentando in maniera inaccettabile la macchina e l\u2019applicazione. A questo punto per non bloccare la produzione era necessario riavviare il server.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A differenza del caso descritto in <a href=\"https:\/\/www.smeup.com\/magazine\/blog\/memory-leak\/\" target=\"_blank\" rel=\"noopener\">questo articolo<\/a>, in cui si \u00e8 estratto il dump direttamente dalla produzione, si \u00e8 tentato, con esito positivo, di riprodurre il problema in un ambiente di test parallelo attraverso simulazioni di carico.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">L\u2019esame del thread dump estratto in due momenti differenti durante il manifestarsi del rallentamento ha mostrato la seguente particolarit\u00e0: pi\u00f9 di un thread risultava essere sempre esecuzione sullo stesso punto di codice.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Vediamo nelle due figure sottostanti il thread t@204 alle 11.00.43 e ben 49 minuti dopo, alle 11.49.00 essere RUNNABLE e sempre in esecuzione della riga 2379 del metodo fixAfterDeletion della classe TreeMap.<\/span><\/p>\n<\/div><div class=\"fusion-image-element \" style=\"--awb-margin-bottom:10px;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\" fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"1312\" height=\"711\" alt=\"smeup thread t@204 in dump1\" title=\"smeup thread t@204 in dump1\" src=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1.png\" data-orig-src=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1.png\" class=\"lazyload img-responsive wp-image-53711\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271312%27%20height%3D%27711%27%20viewBox%3D%270%200%201312%20711%27%3E%3Crect%20width%3D%271312%27%20height%3D%27711%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1-200x108.png 200w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1-400x217.png 400w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1-600x325.png 600w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1-800x434.png 800w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1-1200x650.png 1200w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump1.png 1312w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 1200px\" \/><\/span><\/div><div class=\"fusion-image-element \" style=\"--awb-margin-bottom:20px;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\" fusion-imageframe imageframe-none imageframe-2 hover-type-none\"><img decoding=\"async\" width=\"1312\" height=\"707\" alt=\"smeup thread t@204 in dump2\" title=\"smeup thread t@204 in dump2\" src=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2.png\" data-orig-src=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2.png\" class=\"lazyload img-responsive wp-image-53713\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271312%27%20height%3D%27707%27%20viewBox%3D%270%200%201312%20707%27%3E%3Crect%20width%3D%271312%27%20height%3D%27707%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2-200x108.png 200w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2-400x216.png 400w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2-600x323.png 600w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2-800x431.png 800w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2-1200x647.png 1200w, https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/thread-t@204-in-dump2.png 1312w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 1200px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-2\"><p><span style=\"font-weight: 400;\">Ora il thread non era bloccato sulla riga, essendo lo stato RUNNABLE e non BLOCKED. Era pertanto in esecuzione perenne, ma sempre della stessa parte di codice. Si presentava pertanto uno scenario di livelock.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Effettuando una ricerca sul web relativamente ad alta cpu in caso di presenza del metodo fixAfterDeletion della classe TreeMap (la TreeMap \u00e8 una classe distribuita con Java) abbiamo trovato alcuni post di problemi analoghi al nostro riscontrati da altri sviluppatori software e varie soluzioni consigliate e attuate.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Il problema era dovuto all\u2019utilizzo della classe TreeMap in maniera non sincronizzata tra pi\u00f9 thread. La struttura dati TreeMap non \u00e8 programmata in maniera tale da gestire la sincronizzazione al suo interno quindi se pi\u00f9 thread rimuovono coppie di chiavi-valori simultaneamente si pu\u00f2 generare uno stato inconsistente e un livelock tra di essi.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">E\u2019 quindi necessario nell\u2019usarla, se condivisa da pi\u00f9 thread, gestire programmaticamente la sincronizzazione. Un\u2019altra alternativa pu\u00f2 essere quella di utilizzare mappe concepite appositamente per essere condivise da pi\u00f9 thread, come le classi ConcurrentHashMap o SynchronizedHashMap.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nel nostro caso la TreeMap in questione veniva utilizzata per mantenere la lista delle variabili smeup necessarie alla visualizzazione dell\u2019utente. L\u2019evidenza del fatto che tale mappa venisse acceduta da pi\u00f9 thread contemporaneamente ha fatto riflettere sulle procedure utilizzate per trattarla, pi\u00f9 complesse del necessario. Grazie alla semplificazione di codice effettuata l\u2019accesso di pi\u00f9 thread a tale mappa \u00e8 stato rimosso e pertanto il livelock e i conseguenti disagi avuti dal cliente sono felicemente spariti.<\/span><\/p>\n<p><strong>Chiara Zambelli<br \/>\n<\/strong><em>Responsabile CI\/CD &#8211; smeup<br \/>\n<\/em><a href=\"https:\/\/it.linkedin.com\/in\/chiara-zambelli\" target=\"_blank\" rel=\"noopener\">My LinkedIn Profile<\/a><\/p>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa nella quale si \u00e8 manifestato il problema di performance di Web.UP, ha iniziato a manifestarsi un comportamento anomalo.<\/p>\n","protected":false},"author":1,"featured_media":53709,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7144],"tags":[6390,6166,6391,6392,6314,6393,6316,6389],"class_list":["post-50535","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-erp","tag-concurrenthashmap","tag-cpu","tag-fixafterdeletion","tag-livelock","tag-memory-leak","tag-synchronizedhashmap","tag-thread-dump","tag-thread-dumps"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Un caso reale di livelock accaduto presso un nostro cliente - parte 10<\/title>\n<meta name=\"description\" content=\"Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa del problema di performance Web.UP, si \u00e8 presentato un comportamento anomalo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Un caso reale di livelock accaduto presso un nostro cliente - parte 10\" \/>\n<meta property=\"og:description\" content=\"Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa del problema di performance Web.UP, si \u00e8 presentato un comportamento anomalo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/\" \/>\n<meta property=\"og:site_name\" content=\"Magazine\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-08T04:00:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-09T07:59:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/livelock.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1068\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"smeup\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"smeup\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/\"},\"author\":{\"name\":\"smeup\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\"},\"headline\":\"Un caso reale di livelock &#8211; parte 10\",\"datePublished\":\"2019-08-08T04:00:36+00:00\",\"dateModified\":\"2021-04-09T07:59:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/\"},\"wordCount\":1082,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/08\\\/livelock.jpg\",\"keywords\":[\"ConcurrentHashMap\",\"cpu\",\"fixAfterDeletion\",\"livelock\",\"memory leak\",\"SynchronizedHashMap\",\"thread dump\",\"thread dumps\"],\"articleSection\":[\"ERP\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/\",\"name\":\"Un caso reale di livelock accaduto presso un nostro cliente - parte 10\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/08\\\/livelock.jpg\",\"datePublished\":\"2019-08-08T04:00:36+00:00\",\"dateModified\":\"2021-04-09T07:59:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\"},\"description\":\"Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa del problema di performance Web.UP, si \u00e8 presentato un comportamento anomalo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/08\\\/livelock.jpg\",\"contentUrl\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2019\\\/08\\\/livelock.jpg\",\"width\":1600,\"height\":1068,\"caption\":\"smeup livelock\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/caso-reale-livelock\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Un caso reale di livelock &#8211; parte 10\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/\",\"name\":\"Magazine\",\"description\":\"smeup\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/#\\\/schema\\\/person\\\/194a55d96e7e52223a84ff78468bf5c7\",\"name\":\"smeup\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g\",\"caption\":\"smeup\"},\"sameAs\":[\"https:\\\/\\\/www.smeup.com\"],\"url\":\"https:\\\/\\\/www.smeup.com\\\/magazine\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Un caso reale di livelock accaduto presso un nostro cliente - parte 10","description":"Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa del problema di performance Web.UP, si \u00e8 presentato un comportamento anomalo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/","og_locale":"it_IT","og_type":"article","og_title":"Un caso reale di livelock accaduto presso un nostro cliente - parte 10","og_description":"Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa del problema di performance Web.UP, si \u00e8 presentato un comportamento anomalo.","og_url":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/","og_site_name":"Magazine","article_published_time":"2019-08-08T04:00:36+00:00","article_modified_time":"2021-04-09T07:59:58+00:00","og_image":[{"width":1600,"height":1068,"url":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/livelock.jpg","type":"image\/jpeg"}],"author":"smeup","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"smeup","Tempo di lettura stimato":"4 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#article","isPartOf":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/"},"author":{"name":"smeup","@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7"},"headline":"Un caso reale di livelock &#8211; parte 10","datePublished":"2019-08-08T04:00:36+00:00","dateModified":"2021-04-09T07:59:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/"},"wordCount":1082,"commentCount":0,"image":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/livelock.jpg","keywords":["ConcurrentHashMap","cpu","fixAfterDeletion","livelock","memory leak","SynchronizedHashMap","thread dump","thread dumps"],"articleSection":["ERP"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/","url":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/","name":"Un caso reale di livelock accaduto presso un nostro cliente - parte 10","isPartOf":{"@id":"https:\/\/www.smeup.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#primaryimage"},"image":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/livelock.jpg","datePublished":"2019-08-08T04:00:36+00:00","dateModified":"2021-04-09T07:59:58+00:00","author":{"@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7"},"description":"Livelock: a giugno del 2018 in una nostra azienda cliente, la stessa del problema di performance Web.UP, si \u00e8 presentato un comportamento anomalo.","breadcrumb":{"@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#primaryimage","url":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/livelock.jpg","contentUrl":"https:\/\/www.smeup.com\/magazine\/wp-content\/uploads\/sites\/5\/2019\/08\/livelock.jpg","width":1600,"height":1068,"caption":"smeup livelock"},{"@type":"BreadcrumbList","@id":"https:\/\/www.smeup.com\/magazine\/blog\/caso-reale-livelock\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.smeup.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Un caso reale di livelock &#8211; parte 10"}]},{"@type":"WebSite","@id":"https:\/\/www.smeup.com\/magazine\/#website","url":"https:\/\/www.smeup.com\/magazine\/","name":"Magazine","description":"smeup","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.smeup.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.smeup.com\/magazine\/#\/schema\/person\/194a55d96e7e52223a84ff78468bf5c7","name":"smeup","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a88cc3ad6c0af01768fe2ac47c88a321699d97ced53c173f66ceaa51400f43ca?s=96&d=mm&r=g","caption":"smeup"},"sameAs":["https:\/\/www.smeup.com"],"url":"https:\/\/www.smeup.com\/magazine\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/comments?post=50535"}],"version-history":[{"count":2,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50535\/revisions"}],"predecessor-version":[{"id":53708,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/posts\/50535\/revisions\/53708"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/media\/53709"}],"wp:attachment":[{"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/media?parent=50535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/categories?post=50535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.smeup.com\/magazine\/wp-json\/wp\/v2\/tags?post=50535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}