Java

记一次aviator ibm jdk 不兼容问题排查

2019-08-16  本文已影响0人  Aiibai
问题背景

在was8.5平台,调用AviatorEvaluator.compile 方法时,整个进程都挂掉了,但是同样的代码在本地运行是没有问题的。

解决过程
  1. 在项目的根目录下找到了当进程挂掉时生成的三个文件,分别是:
    core.20190816.115359.86949.0001.dmp
    javacore.20190816.115359.86949.0002.txt
    Snap.20190816.115359.86949.0003.trc
    那就先从txt文件下手了,找到了下面的提示


    image.png

从上面的日志中看到问题很可能出在了虚拟机厂商不同,导致本地现象和was平台不一致

  1. 定位到错误中的代码行


    image.png

错误是出现在标红的地方
这段代码也给出的暗示,如果错误次数达到10000次,就将preferClassLoader设置为 true,但是我们碰到的情况是只要执行标红的代码整个进程就会挂掉,根本等不到10000次。所以我们的解决方案是:在启动参数中,将配置aviator.preferClassloaderDefiner设置为 true

上一篇下一篇

猜你喜欢

热点阅读