Patch Name: PHKL_23327 Patch Description: s700 10.20 JFS sync/freeze/flush 'dirty inval' panics Creation Date: 01/02/06 Post Date: 01/02/07 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: JournalFS.VXFS-BASE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_23327: PANIC PHKL_17526: PANIC Path Name: /hp-ux_patches/s700/10.X/PHKL_23327 Symptoms: PHKL_23327: (SR: 8606173382 CR: JAGad42640) Data Page Fault in vx_rwsleep_unlock()/vx_igunlock() invoked from vx_iflush() or vx_fsflushi(). This happens under heavy stress to VxFS filesystems. Stack of the panic thread may look like: panic+0x10 report_trap_or_int_and_panic+0xe8 trap+0xa48 thandler+0xb7c vx_rwsleep_unlock+0xc vx_igunlock+0x14 vx_iflush+0x1fc vx_iflush_thread+0x70 vx_startdaemon+0xac vx_postinit+0x74 vx_sync+0x14 update+0x6c sync+0x20 PHKL_17526: (SR: 1653285320 DTS: JAGaa44494) System panics with "panic: dirty inval" message. A stack trace might look like: panic+0x10 brelse+0x230 vx_brelse_bp+0x34 vx_brelse_noflush+0x34 vx_brelse+0x3c vx_brelse_stale+0x2c vx_blkinval+0x12c vx_freeze_level+0x114 vx_freeze+0x10 vx_vfsfreeze+0x28 freeze_and_sync_fs_dev+0x38 lv_single_freeze_fs+0xd0 lv_realloclv+0x668 lv_ioctl+0x9bc spec_ioctl+0xd4 vno_ioctl+0x98 ioctl+0x78 syscall+0x1a4 $syscallrtn+0x0 Defect Description: PHKL_23327: (SR: 8606173382 CR: JAGad42640) The system panics while unlocking a lock on an inode. The lock was freed by a thread reusing the inode while another thread had locked it for flushing the inode. Later when the flushing thread tries to unlock the freed lock a system panic results. Resolution: Keep a hold on the vnode while flushing the inode so that the inode is not reused while being flushed. PHKL_17526: (SR: 1653285320 DTS: JAGaa44494) A JFS file system that is in the frozen state could have activity generated by a 'sync' system call. This leaves some buffers in the 'invalid' (B_INVAL) and delayed write (B_DELWRI) state. This causes a panic. Running the 'lvmerge' command and sync at the same time on the same file system might reproduce the problem. Resolution: Protect the 'vx_delxwri_flush_inode()' call in 'vx_delxwri_flush()' with an ACTIVE1 level so that sync and freeze will coordinate. SR: 1653285320 8606173382 Patch Files: /usr/conf/lib/libvxfs_base.a(vx_iflush.o) what(1) Output: /usr/conf/lib/libvxfs_base.a(vx_iflush.o): vx_iflush.c $Date: 2001/02/06 07:55:53 $ $Revision: 1.6.98.17 $ PATCH_10.20 (PHKL_23327) cksum(1) Output: 790180885 30200 /usr/conf/lib/libvxfs_base.a(vx_iflush.o) Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_16750 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_17526 Equivalent Patches: PHKL_23328: s800: 10.20 Patch Package Size: 90 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHKL_23327 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_23327.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_23327. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_23327.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_23327.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch depends on base patch PHKL_16750. For successful installation, please ensure that PHKL_16750 is in the same depot with this patch, or PHKL_16750 is already installed.