jackson-databind 2.4.1 2.4.1.1 bug

前幾天線上環境出現線程池滿,經排查,發現:

     jackson-databind:version  2.4.1.1 | 2.4.1
     有死循環bug。

     https://github.com/FasterXML/jackson-databind/issues/503
     https://libereco.cn/posts/study/2016/03/17/jackson-lock/

解決方案:

     建議把有問題的版本直接禁用,有問題的版本是這個區間:[2.4.0,  2.4.1.1]

     低于 2.4.0 的,LRUMap 的訪問被 synchronized 保護,沒有問題,只是性能低點。
     有問題的版本,LRUMap(實事上是一個 LinkedHashMap) 被讀寫鎖保護,但因為 LinkedHashMap 的讀操作里有寫操作,所以事實上沒有保護住。
     高于 2.4.1.1,換成了 ConcurrentHashMap.
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容