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.

推荐阅读更多精彩内容