设为首页
加入收藏夹

ORACLE在HP-UX下的系列问题处理(49)
浏览选项:

  HP-UX: 在HP-UX 10.20上安装Oracle 7.3.3版时挂起。
  问题描述
  我使用运行HP-UX 10.20的9000/K,我试图在上面安装Oracle 7.3.3版,但安装挂起,我
  是否能够为我提供帮助?
  配置信息
  操作系统 - HP-UX
  版本 - 10.20
  硬件系统 - HP9000
  系列 -
  解决方法
  问题是由于在PA8000系统上使用VxFS Direct IO和SHMEM_MAGIC时的死锁引起的。
  使用下面的方法禁用superpage exec():
   # adb -w /stand/vmunix
   allow_superpage_text?W 0
  这个规避方法应当可以解决这个问题。
  缺陷实际上在VxFS代码中。VX_DIRECT IO特性的设计只适用于用户IO (UIOSEG_USER),问
题在于VxFS不检查UIOSEG_PAGEIN IO,然后有可能在保持区域RW锁定的同时,调用
vx_dio_iovec()/vx_memiolock()及exec_superpage_text(),从而导致到达us
   save+0x0
   _swtch+0x2e0
   real_sleep+0x2f4
   _sleep+0x14
   lock_write+0x2c8    findpreg+0xb0 <<< 再次调用 reglock()!!!
   pfault+0x98
   lacc+0x68
   vx_memiolock+0x3c
   vx_dio_iovec+0x420
   vx_dio_rdwri+0x104
   vx_dio_readi+0x8c    vx_read1+0x2e4 <<< 调用 vx_dio_check()
   vx_rdwr+0x16c    vn_rdwr+0x8c <<< UIOSEG_PAGEIN
   exec_superpage_text+0x168 <<< 调用 reglock()
   getxfile+0x478
   execve+0xb70
   syscall+0x1a4
  解决方法是将vx_dio_check()中的EINVAL返回non-UIOSEG_USER段的IO,然后vx_read1()
  针对此问题的SR 1653223669已经打开。
  .........following with all English text ....
  A4747242 [A4747242/TRAK/English]

  HP-UX: Installation of Oracle release 7.3.3 hangs with HP-UX 10.20.
  Problem Description
  I have a 9000/K with HP-UX 10.20 on which I am trying to install Oracle
release 7.3.3. The installation hangs and we cannot find the cause.
  Can you help?
  Configuration Info
  Operating System - HP-UX
  Version - 10.20
  Hardware System - HP9000
  Series -
  Solution
  The problem is caused by a deadlock when using VxFS Direct IO and SHMEM_MAGIC
  Use this work-around to disable superpage exec():
   # adb -w /stand/vmunix
   allow_superpage_text?W 0
  The work-around should solve the problem.
  The defect is actually in the VxFS code. The VX_DIRECT IO feature is
designed to work for user IOs only(UIOSEG_USER). The problem is that VxFS does
not check for UIOSEG_PAGEIN IOs. It is then possible to call
vx_dio_iovec()/vx_memiolock() along the exec_superpage_text()
  while holding the region RW lock, thus resulting in a deadlock when
  reaching useracc()/pfault()/findpreg()/lock_write():
   save+0x0
   _swtch+0x2e0
   real_sleep+0x2f4
   _sleep+0x14
   lock_write+0x2c8    findpreg+0xb0 <<< calling reglock() again !!!
   pfault+0x98
   lacc+0x68
   vx_memiolock+0x3c
   vx_dio_iovec+0x420
   vx_dio_rdwri+0x104
   vx_dio_readi+0x8c    vx_read1+0x2e4 <<< called vx_dio_check()
   vx_rdwr+0x16c    vn_rdwr+0x8c <<< UIOSEG_PAGEIN
   exec_superpage_text+0x168 <<< called reglock()
   getxfile+0x478
   execve+0xb70
   syscall+0x1a4
  The fix would be to return EINVAL in vx_dio_check() for IOs with
non-UIOSEG_USER segments. Then vx_read1() would fall-back to the
  regular IO path and this would avoid the deadlock.
  SR 1653223669 has been opened for this problem.



Copyright © 2004 wanxu.com All Rights Reserved