JAVA隔离机制漫谈
最近遇到一个事情,一个JAVA业务系统进程频繁崩溃,测试环境几乎每天一次,多的时候一天多次,非常让人恼火,而且这种崩溃,不是报一个异常业务流程终止,而是JVM进程崩溃掉了。分析过程就不谈了,挺曲折,最终使用gdb和jstat联合分析程序崩溃时的现场,发现是企业微信提供的SDK导致的问题。 至此,现象首先明确了。企业微信的JAVA版的SDK实际上是使用了JNI技术调用了C编写的动态库。而底层C动态库在执行时遇到了问题(比如内存分配问题)出现异常,这种异常导致了整个JVM进程的崩溃。 详细的避免方案以及解决方案还在分析中。不过也让我想到另外一个问题,多年之前也遇到过一个JNI的问题,因为参数没有校 …