加密JNI在压力测试期间崩溃

时间:2016-03-06 13:36:57

标签: java cryptography java-native-interface

在我的项目中,加密(AES,Blowfish)算法在C中作为共享库实现,并由Java作为JNI接口调用。使用Valgrind,共享库没有内存泄漏。但是,在Java端进行压力测试时,JVM会偶尔发现 ,并且很难找到原因。错误日志表明GCthread已崩溃,我将调查GC。

请给我一些提示如何解决这类问题。非常感谢你。

错误日志中的一些信息:

当前线程(0x00007fc1e3002800): GCTaskThread [stack:0x000070000021d000,0x000070000031d000] [id = 9219]

siginfo:si_signo = SIGSEGV:si_errno = 0,si_code = 1(SEGV_MAPERR),si_addr = 0x00007fc104000280

1 个答案:

答案 0 :(得分:0)

事实证明,我们的C代码存在Valgrind发现的内存陷阱。强烈建议使用分析工具(例如Valgrind)严格测试C代码的内存占用。