数据库
首页 > 数据库> > 数据库安装An unexpected error has been detected by HotSpot Virtual Machine

数据库安装An unexpected error has been detected by HotSpot Virtual Machine

作者:互联网

[oracle@rac1 database]$ ./runInstaller  
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 14636 MB    Passed  
Checking swap space: must be greater than 150 MB.   Actual 15998 MB    Passed  
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed  
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-05-13_01-59-34PM. Please wait ...[oracle@rac1 database]$ #  
# An unexpected error has been detected by HotSpot Virtual Machine:  
#  
#  SIGSEGV (0xb) at pc=0x0000003f91a14d70, pid=27143, tid=140264133601040  
#  
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_30-b03 mixed mode)  
# Problematic frame.:  
# C  [ld-linux-x86-64.so.2+0x14d70]  
#  
# An error report file with more information is saved as hs_err_pid27143.log  
#  
# If you would like to submit a bug report, please visit:  
#     http://java.sun.com/webapps/bugreport/crash.jsp  

 

 

解决方法:

 .bash_profile

增加export LD_BIND_NOW=1

 

说明:

http://www.yesky.com/SoftChannel/72356695560421376/20030909/1727198_1.shtml  
 LD_BIND_NOW环境变量能够改变动态连接行为。如果这个环境变量不为空,动态连接器在把控制权交给程序之前会先为程序连接表赋值。也就是说,在进程初始化期间,动态连接器为R_386_JMP_SLOT类型的重定位入口赋值,以便在第一次调用时,不必通过动态连接器就能够跳转到目标地址。反之,如果这个环境变量为空,动态连接器就暂不为程序连接表入口赋值,不对符号进行解析和重定位,直到第一次调用一个程序连接表入口,才对其做相应的处理。这种方式叫作后期连接(lazy binding)方式。

  注意:后期连接(lazy binding)方式一般会大大提高应用程序的性能,因为不必为解析无用的符号浪费动态连接器的开销。不过,有两种情况例外。第一,对一个共享目标函数进行初始化处理花费的时间比调用正式的执行时间长,因为动态连接器会拦截调用以解析符号,而这个函数功能又比较简单;第二,如果发生错误和动态连接器无法解析符号,动态连接器就会终止程序。使用后期连接方式,这种错误可能会在程序执行过程中,随时发生。而有些应用程序对这种不确定性有比较严格的限制。因此,需要关闭后期连接方式,在应用程序接受控制权之前,让动态连接器处理进程初始化期间发生的这些错误。


标签:unexpected,Passed,MB,been,Machine,HotSpot,连接器,动态,连接
来源: https://blog.51cto.com/lhrbest/2696947