Solaris 10下Java Runtime Environment出错的一例修复

 Solaris 10下Java Runtime Environment出错的一例修复

前些天一台Sun服务器上的Sybase 出错,不能备份,恢复数据库,重装了Backup Server也没解决问题,
遂准备重装Sybase. 没想到执行install时候,出现一个错误,
/dev/zero: (No such file or directory),连安装界面都没出来就中止了。

经检查,估计是机器上的JRE环境出错了。
然后 运行 java -version测试一下,出现下列错误,
Log文件内容如下:


#
# An unexpected error has been detected by Java Runtime Environment:
#
#  Internal Error (os_solaris.cpp:4615), pid=3235, tid=2
#  Error: os::init: cannot open /dev/zero (No such file or directory)
#
# Java VM: Java HotSpot(TM) Server VM (10.0-b23 mixed mode, sharing solaris-sparc)
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread is native thread

Stack: [0xfe480000,0xfe500000],  sp=0xfe4ffa00,  free space=510k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x766ebc]
V  [libjvm.so+0x3fde84]
V  [libjvm.so+0x248fdc]
V  [libjvm.so+0x71a7c0]
V  [libjvm.so+0x254df4]
C  [java+0x2650]  main+0x1080


---------------  P R O C E S S  ---------------

VM state:not at safepoint (not fully initialized)

VM Mutex/Monitor currently owned by a thread: None

Dynamic libraries:
0x00010000  /export/jre1.6.0_07/bin/java
0xff3ec000  /lib/libthread.so.1
0xff380000  /export/jre1.6.0_07/bin/../lib/sparc/jli/libjli.so
0xff350000  /lib/libdl.so.1
0xff200000  /lib/libc.so.1
0xff3a0000  /platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1
0xfe800000  /export/jre1.6.0_07/lib/sparc/server/libjvm.so
0xff300000  /lib/libsocket.so.1
0xff330000  /usr/lib/libsched.so.1
0xff1d0000  /lib/libm.so.1
0xff190000  /usr/lib/libCrun.so.1
0xff170000  /lib/libdoor.so.1
0xfe700000  /lib/libnsl.so.1
0xfe600000  /lib/libm.so.2
0xfe7d0000  /lib/libscf.so.1
0xfe6e0000  /lib/libuutil.so.1
0xfe5e0000  /lib/libgen.so.1
0xfe5b0000  /lib/libmd.so.1
0xfe590000  /platform/SUNW,Sun-Fire-V240/lib/libmd_psr.so.1
0xfe570000  /lib/libmp.so.2

VM Arguments:
java_command: <unknown>
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=/usr/sbin:/usr/bin
LD_LIBRARY_PATH=/export/jre1.6.0_07/lib/sparc/server:/export/jre1.6.0_07/lib/sparc:/export/jre1.6.0_07/../lib/sparc
SHELL=/sbin/sh

Signal Handlers:
SIGSEGV: [libjvm.so+0x767c10], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGBUS: [libjvm.so+0x767c10], sa_mask[0]=0xffbffeff, sa_flags=0x00000004
SIGFPE: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGPIPE: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGXFSZ: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGILL: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGQUIT: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGHUP: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGINT: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGTERM: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000


---------------  S Y S T E M  ---------------

OS:                       Solaris 10 8/07 s10s_u4wos_12b SPARC
           Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                            Assembled 16 August 2007

uname:SunOS 5.10 Generic_120011-14 sun4u  (T1 libthread)
rlimit: STACK 8192k, CORE infinity, NOFILE 256, AS infinity
load average:0.08 0.06 0.05

CPU:total 2

Memory: 8k page, physical 4194304k(3423904k free)

vm_info: Java HotSpot(TM) Server VM (10.0-b23) for solaris-sparc JRE (1.6.0_07-b06), built on Jun 10 2008 01:39:38 by "" with Workshop 5.8

time: Mon Jul 28 14:35:40 2008
elapsed time: 0 seconds

 

 

然后到SUN网站下载新的JRE, 版本jre1.6.0_07
jre-6u7-solaris-sparc.sh
jre-6u7-solaris-sparcv9.sh

 

./jre-6u7-solaris-sparc.sh
./jre-6u7-solaris-sparcv9.sh


尝试重新安装JRE,
结果在出现那个License之后,按Yes继续,系统就提示
文件可能损坏,请不要再尝试安装这个文件。


郁闷的不行,只好再从错误提示看起,先找找/dev/zero到底在不在,

到/dev下找了找,没找到这个zero的设备。
到网上查了一下/dev/zero这个设备是什么设备,
答案是
永远输出0的设备,比如可以用来生成内容全为0的文件,或是安全擦除文件内容

又碰巧查到一个文章
http://www.yesadmin.com/351/137537/index.html,讲到这个设备
然后通过


cd /dev
bash-3.00# mknod zero c 13 12

 

创建/dev/zero这个Device,

 

再运行
Java的安装,成功!

java -version也能正确显示信息。

 

然后在Sybase目录下重新执行
./install
出现熟悉的图形界面安装程序。后续安装一切顺利。

 

没准儿当初的Sybase Backup Server就是依赖于这么个设备,才无法正常执行任务,可惜已经把原来的Sybase删除掉了,没法验证。
由于网上文章实在有限,把过程大致整理了一下,以供后来人参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值