我在Linux Debian 5上遇到JRE问题。 在TEE-CLC java应用程序执行期间,JRE(sun 1.6 21)在Debian 5(内核2.6.26)上与SIGBUS崩溃。
TEE-CLC-10.1.0是Microsoft Team Foundation Server(TFS)的Java客户端应用程序。
这是java virtul mashine命令行:
exec java -Xmx512M -classpath “$ CLC_CLASSPATH”“ - Dcom.microsoft.tfs.jni.native.base-directory = $ BASE_DIRECTORY / native” $ RANDOM_DEVICE_PROPERTY com.microsoft.tfs.client.clc.vc.Main“$ @”
当我尝试执行命令(从服务器获取文件)时: tf get -r -force {branch_name} 它开始获取文件,然后一两分钟后出现以下错误消息:
Java Runtime Environment检测到致命错误:
SIGBUS(0x7)at pc = 0xb77d3422,pid = 29386,tid = 3076802752
JRE版本:6.0_21-b06 Java VM:Java HotSpot(TM)客户端VM(17.0-b16混合模式linux-x86) 有问题的框架: C [+ 0x422] __kernel_vsyscall + 0xe
包含更多信息的错误报告文件保存为: /...../..../...../hs_err_pid29386.log 分段错误。
我有大约900M的可用内存。我检查了限制:ulimit -a。 我有三台其他Linux Debian 5计算机,它们使用相同的设置工作正常。 我检查了一切。我不知道为什么JRE不能正常工作。
有人知道如何处理吗? JRE或我的Debian 5出了什么问题?
答案 0 :(得分:0)
根据我的经验,很少有错误的程序因SIGBUS
而失败:编译器的错误检查使得很难生成奇数内存地址。我最近见过的几次是(IIRC),因为我使用的是不兼容的共享库或.o
文件。
是否为执行程序设置了LD_LIBRARY_PATH
环境变量?如果是这样,则可能导致程序使用不正确的共享库。