标签:dns

一次排查多线程引发Java DNS缓存的Bug

问题描述 最近通知应用在近三个月内出现过2次DNS缓存的问题,第一次在重启之后一直没有出现过问题,所以也没有去重视,但是最近又出现过一次,看来很有必要彻底排查一次;具体的错误日志如下: 具体表现就是出现此异常之后连续的出现大量此异常,同时系统节点不可用; 问题分析 1.既然InetAddress$Cache.put报空指针,那就具体看一下源代码: 报空指针的的地方就是entry.expiration,也就是说从cache取出来的entry为null,可以查看cache写入的地方: 每次都是new一个CacheEntry然后再put到cache中,不会写入null进去;此时猜测是多线程引发的问题…

阅读全文 »