早上,运维甩来两个报错
每个进程可打开的文件描述符有限制,为啥还把nio和dubbo的socket给搞爆了???
ok,fine,看看现在打开了多少文件吧。。。
wtf??这是啥玩意儿,问了问开发同学,html转pdf中,html代码用到了这个字体。。。
ok,那就看看这个加载的代码吧
再进去看到一个addfont的东西
进入到这个create方法
------------华丽丽的分割线-----------------
里面有这么一个玩意儿,这是一个伏笔,一会儿说
-----------华丽丽的结束------------------
再往下走,进到里面
这里会创建一个Parser对象,里面调用了一个initial代码,再看看这个初始化方法,问题就在这里
初始化方法里面会去调用创建这个资源,但是判断的时候却看到他这里出现了不可读的情况????what the ffffff??对我的字体文件有啥意见???我可以某度上下的。
然后问题来了,他还是读取了这个文件
然后bug来了,这里抛出了IO异常,你抛出ok,fine没问题,你这时候跟着这个方法一路往上走
兄弟,你告诉我这是什么???你没关资源啊!!!!finally呢???
文件还开在这里啊兄弟!!!
因为这个转换线程是个守护线程,只要有任务过来就会一直不断重复创建这个对象,然后不断IO异常,然后不断开文件。。。。。。。again & again & again。。。
所以解决方法就是,把这字体文件 down to the sea,goodbye motherfuxxxxxxker。。。。
或者更改代码,只初始化一次,这样就算错了,也不会资源泄漏,让我改代码,ok,fine,下个版本一定重构。。。。