Patch-ID# 110434-09 Keywords: VxFS 3.4 VERITAS File System fsadm vxedquota rename Quick I/O DMAPI Synopsis: VERITAS File System 3.4: VxFS 3.4 multiple fixes patch Date: Feb/07/2003 Install Requirements: Reboot after installation Solaris Release: 7 SunOS Release: 5.7 Unbundled Product: Veritas VxFS Unbundled Release: 3.4 Xref: Topic: VxFS 3.4 Multiple fixes patch Relevant Architectures: sparc BugId's fixed with this patch: 4350275 4375699 4375709 4387946 4391430 4395201 4403414 4404637 4412462 4423662 4431015 4432450 4453199 4473431 4488408 4497674 4546309 4657088 4667568 4668200 4683708 4745082 4751467 4778806 Changes incorporated in this version: 4497674 4657088 4667568 4668200 4683708 4745082 4751467 4778806 Patches accumulated and obsoleted by this patch: Patches which conflict with this patch: Patches required with this patch: Obsoleted by: Files included with this patch: /etc/fs/vxfs/mount /etc/fs/vxfs/qlogattach /etc/fs/vxfs/qlogck /etc/fs/vxfs/qlogrec /etc/init.d/qlog-startup /etc/rcS.d/S88qlog-startup /kernel/drv/sparcv9/vxportal /kernel/drv/vxportal /kernel/drv/vxportal.conf /kernel/fs/sparcv9/vxfs /kernel/fs/vxfs /opt/VRTS/man/man1/cp_vxfs.1 /opt/VRTS/man/man1/cpio_vxfs.1 /opt/VRTS/man/man1/getext.1 /opt/VRTS/man/man1/ls_vxfs.1 /opt/VRTS/man/man1/mv_vxfs.1 /opt/VRTS/man/man1/qioadmin.1 /opt/VRTS/man/man1/qiomkfile.1 /opt/VRTS/man/man1/qiostat.1 /opt/VRTS/man/man1/setext.1 /opt/VRTS/man/man1m/df_vxfs.1m /opt/VRTS/man/man1m/ff_vxfs.1m /opt/VRTS/man/man1m/fsadm_vxfs.1m /opt/VRTS/man/man1m/fscat_vxfs.1m /opt/VRTS/man/man1m/fsck_vxfs.1m /opt/VRTS/man/man1m/fsckptadm.1m /opt/VRTS/man/man1m/fsclustadm.1m /opt/VRTS/man/man1m/fsdb_vxfs.1m /opt/VRTS/man/man1m/fstyp_vxfs.1m /opt/VRTS/man/man1m/mkfs_vxfs.1m /opt/VRTS/man/man1m/mount_vxfs.1m /opt/VRTS/man/man1m/ncheck_vxfs.1m /opt/VRTS/man/man1m/qlogadm.1m /opt/VRTS/man/man1m/qlogattach.1m /opt/VRTS/man/man1m/qlogck.1m /opt/VRTS/man/man1m/qlogdb.1m /opt/VRTS/man/man1m/qlogdetach.1m /opt/VRTS/man/man1m/qlogdisable.1m /opt/VRTS/man/man1m/qlogenable.1m /opt/VRTS/man/man1m/qlogmk.1m /opt/VRTS/man/man1m/qlogprint.1m /opt/VRTS/man/man1m/qlogrec.1m /opt/VRTS/man/man1m/qlogrm.1m /opt/VRTS/man/man1m/qlogstat.1m /opt/VRTS/man/man1m/qlogtrace.1m /opt/VRTS/man/man1m/umount_vxfs.1m /opt/VRTS/man/man1m/vxdump.1m /opt/VRTS/man/man1m/vxedquota.1m /opt/VRTS/man/man1m/vxfsconvert.1m /opt/VRTS/man/man1m/vxfsstat.1m /opt/VRTS/man/man1m/vxquot.1m /opt/VRTS/man/man1m/vxquota.1m /opt/VRTS/man/man1m/vxquotaoff.1m /opt/VRTS/man/man1m/vxquotaon.1m /opt/VRTS/man/man1m/vxrepquota.1m /opt/VRTS/man/man1m/vxrestore.1m /opt/VRTS/man/man1m/vxtunefs.1m /opt/VRTS/man/man1m/vxupgrade.1m /opt/VRTS/man/man3/vxfsu_get_ioffsets.3 /opt/VRTS/man/man4/fs_vxfs.4 /opt/VRTS/man/man4/inode_vxfs.4 /opt/VRTS/man/man4/qlog_config.4 /opt/VRTS/man/man4/tunefstab.4 /opt/VRTS/man/man7/qlog.7 /opt/VRTS/man/man7/vxfsio.7 /opt/VRTSvxfs/include/dmapi.h /opt/VRTSvxfs/include/fdd.h /opt/VRTSvxfs/include/sys/fs/dmapi.h /opt/VRTSvxfs/include/sys/fs/dmapi_size.h /opt/VRTSvxfs/include/sys/fs/vx_ioctl.h /opt/VRTSvxfs/include/sys/fs/vxio.h /opt/VRTSvxfs/include/vxfsutil.h /opt/VRTSvxfs/lib/.libvxfsutil.so /opt/VRTSvxfs/lib/libvxfsutil.a /opt/VRTSvxfs/lib/libxdsm.a /opt/VRTSvxfs/lib/sparcv9/.libvxfsutil.so /opt/VRTSvxfs/lib/sparcv9/libvxfsutil.a /opt/VRTSvxfs/lib/uxvxfs.txt /opt/VRTSvxfs/sbin/cp /opt/VRTSvxfs/sbin/cpio /opt/VRTSvxfs/sbin/fsadm /opt/VRTSvxfs/sbin/fscat /opt/VRTSvxfs/sbin/fsckptadm /opt/VRTSvxfs/sbin/fsclustadm /opt/VRTSvxfs/sbin/getext /opt/VRTSvxfs/sbin/ln /opt/VRTSvxfs/sbin/ls /opt/VRTSvxfs/sbin/mv /opt/VRTSvxfs/sbin/qioadmin /opt/VRTSvxfs/sbin/qiomkfile /opt/VRTSvxfs/sbin/qiostat /opt/VRTSvxfs/sbin/qlogadm /opt/VRTSvxfs/sbin/qlogdb /opt/VRTSvxfs/sbin/qlogdetach /opt/VRTSvxfs/sbin/qlogdisable /opt/VRTSvxfs/sbin/qlogenable /opt/VRTSvxfs/sbin/qlogmk /opt/VRTSvxfs/sbin/qlogprint /opt/VRTSvxfs/sbin/qlogrm /opt/VRTSvxfs/sbin/qlogstat /opt/VRTSvxfs/sbin/qlogtrace /opt/VRTSvxfs/sbin/setext /opt/VRTSvxfs/sbin/vxdump /opt/VRTSvxfs/sbin/vxedquota /opt/VRTSvxfs/sbin/vxfsckd /opt/VRTSvxfs/sbin/vxfsconvert /opt/VRTSvxfs/sbin/vxfsstat /opt/VRTSvxfs/sbin/vxquot /opt/VRTSvxfs/sbin/vxquota /opt/VRTSvxfs/sbin/vxquotaoff /opt/VRTSvxfs/sbin/vxquotaon /opt/VRTSvxfs/sbin/vxrepquota /opt/VRTSvxfs/sbin/vxrestore /opt/VRTSvxfs/sbin/vxtunefs /opt/VRTSvxfs/sbin/vxupgrade /usr/kernel/drv/fdd /usr/kernel/drv/fdd.conf /usr/kernel/drv/qlog /usr/kernel/drv/qlog.conf /usr/kernel/drv/sparcv9/fdd /usr/kernel/drv/sparcv9/qlog /usr/lib/fs/vxfs/df /usr/lib/fs/vxfs/ff /usr/lib/fs/vxfs/fsck /usr/lib/fs/vxfs/fsckall /usr/lib/fs/vxfs/fsdb /usr/lib/fs/vxfs/fstyp /usr/lib/fs/vxfs/mkfs /usr/lib/fs/vxfs/ncheck /usr/lib/fs/vxfs/umount Problem Description: -------------------- 4497674 (114404) VxFS caused a system panic in the page_find() function on Solaris debug kernel. 4657088 (101308) Panic in vx_freeze_all_fs. 4667568 (93459) VxFS Quick I/O functionality was not operating on Solaris 9. 4668200 (96374) vx_dirrem_5 errors appear on an active file system. 4683708 (93341) VxFS was not checking existing tunable values when setting tunables. 4745082 (98157) The default intent logging mode is "log" when mounting a VxFS file system with the -g (global) option. 4751467 (112535) vxrestore -r fails to fully restore incremental dumps (level 9 dumps). 4778806 (113367) Problem inheriting ACLs. (99247) The readdir() and getdents() calls return EINVAL. (from 110434-08) (from 110434-07) 4488408 (89103) Remount fails (mount -g -o remount) on 64-bit kernels. (91550) Directory errors occurred because cache information was not being updated correctly. (92686) VxFS DMAPI returned a value of zero instead of the number of bytes. (from 110434-06) 4431015 (73161) System panic occurred while editing quotas. 4473431 (39397) High number of ioctl failures occurred when defragmenting a file system after upgrading. 4546309 (82077) Renaming files in large directories occasionally caused a directory operation error and marked a file system for a full fsck. (80383) Cluster reconfiguration sometimes caused directory errors and marked a file system for a full fsck. (82334) Various problems were arising on VxFS due to incorrect handling of large directory caches. (83129) An extended attribute class shared between VxFS and the file server application could cause data corruption. (85889) System hang occurred because of the long time required for processing inactive inodes on a disabled file system. (89711) Directory error messages were generated when updating the hash list. (90066) Data blocks were corrupted when writing to Quick I/O files while removing Storage Checkpoints. (from 110434-05) (from 110434-04) (from 110434-03) 4404637 (57694) VxFS ACLS were not consistent with group permissions. 4423662 (62971) VxFS buffer pages were allocated as kernel pages. 4432450 (63546) The mount command datainlog option was not the default on Solaris 8 systems. 4453199 (68523) Running the umount command generated spurious warning message: "no entries found in /etc/mnttab." (18142) Changed VxFS error policy to not mark inodes bad on disk. (38669) Update to the vxrestore(1M) online manual page. (52408) The vxdump command did not work correctly on Solaris 8 because it was trying to access the obsoleted utmp and wtmp files. (53075) Quick I/O files could not be resized to 1 byte less than 2 GB. (57603) System panicked during an extent reorganization. (59984) System would hang due to a deadlock between bmaplock and buffer. (62978) When running vxdump on Solaris 8, the remote host name was not displayed correctly. (64192) Panic occurred when attempting to modunload GAB when VxFS 3.4 was installed. (from 110434-02) (from 110434-01) 4350275 (32433) Space freed by deleting a large file took a long time to appear in df command output. 4375699 (55091) The mount -g option did not clear the noglobal flag in /etc/mnttab. 4375709 (55091) The mount -g option did not clear the noglobal flag in /etc/mnttab. 4387946 (55997) New Solaris paging counters were not being updated. 4391430 (58247) The "qlogrec -s" command displayed wrong error message. 4395201 (58063) The NFS thread size was not 16K in Solaris 8 32-bit operating systems. 4403414 (56313) A vxdump command problem was reintroduced into VxFS. 4412462 (58780) Running "mount -g -o remount" on a read-only VxFS file system failed with an EBUSY error. (23593) Enhancement request for the vxquota command to work over NFS. (51154) Added vxfsstat command and manual page to VxFS. (54546) VxFS file systems could not be unmounted although there was no apparent problem. (54944) VxFS commands were not built to support message catalogs. Patch Installation Instructions: -------------------------------- For Solaris 2.0-2.6 releases, refer to the Install.info file and/or the README within the patch for instructions on using the generic ''installpatch'' and ''backoutpatch'' scripts provided with each patch. For Solaris 7-9 releases, refer to the man pages for instructions on using ''patchadd'' and ''patchrm'' scripts provided with Solaris. Any other special or non-generic installation instructions should be described below as special instructions. The following example installs a patch to a standalone machine: example# patchadd /var/spool/patch/104945-02 The following example removes a patch from a standalone system: example# patchrm 104945-02 For additional examples please see the appropriate man pages. Special Install Instructions: --------------------------------- You need to use the shutdown command to reboot the system after patch installation or de-installation: shutdown -g0 -y -i6 Additional Notes: ----------------- VxFS 3.4patch04 includes all fixes from the VxFS 3.4patch01, VxFS 3.4patch02, and VxFS 3.4patch03 releases. This patch can be applied to VxFS Release 3.4, VxFS 3.4patch01, VxFS 3.4patch02, and VxFS 3.4patch03. This patch cannot be applied to pre-3.4 VxFS releases. The following files included in this release are hard links to another file: /etc/rcS.d/S88qlog-startup (hard linked to /etc/init.d/qlog-startup) /opt/VRTSvxfs/sbin/cp (hard linked to mv) /opt/VRTSvxfs/sbin/ln (hard linked to mv) /opt/VRTSvxfs/sbin/qlogdisable (hard linked to qlogenable) /opt/VRTSvxfs/sbin/vxquotaoff (hard linked to vxquotaon) There were 9 major VxFS escalated incidents. They are described below. 1) VERITAS Incident 114404 (Sun ID 4497674) System panics occurred in the page_find() function because this function is called with a non-page boundary offset by VxFS. 2) VERITAS Incident 101308 (Sun ID 4657088) The PXFS file system uses the underlying file system type (VxFS) as its VFS layer to make it transparent to applications. So VxFS may interpret PXFS vnodes to be VxFS vnodes, mistakenly dereference the vnode as a VxFS vnode, and panic. In addition to checking for VFS type, VxFS now implements checks to determine whether a vnode is VxFS vnode. 3) VERITAS Incident 93459 (Sun ID 4667568) On Solaris 9, applications using the VERITAS Quick I/O feature hang indefinitely in as_free(). 4) VERITAS Incident 96374 (Sun ID 4668200) Failed directory operations occurred on an active file system and vx_dirrem_5 error messages were displayed on the console. 5) VERITAS Incident 93341 (Sun ID 4683708) When VxFS increased the default stack size (24 kilobytes), it was not checking to determine if any other utility previously set the tunable to a higher value. 6) VERITAS Incident 98157 (Sun ID 4745082) Changes the default intent logging mode from "delaylog" to "log" when a VxFS file system is mounted using the generic -g (global) option of the mount command. 7) VERITAS Incident 112535 (Sun ID 4751467) The vxrestore -r command was failing to fully restore an incremental dump (level 9 off a 0) while vxrestore -x and vxrestore -i restore files as expected. 8) VERITAS Incident 113367 (Sun ID 4778806) Files created under a directory with default ACLs sometimes did not inherit the ACLs until a directory was created within the directory. 9) VERITAS Incident 99247 The readdir() and gendents() calls returned EINVAL to applications if some operations changed the directory information in between the previous call and current call. This behavior was changed to conform to UFS. (from 110434-08) (from 110434-07) 1) VERITAS Incident 89103 (Sun ID 4488408) The "mount -g -o remount" command failed to remount a file system when run on a 64-bit kernels. Problem appears only in a cluster on the primary node when running in 64-bit mode. 2) VERITAS Incident 91550 On VxFS 3.4 Patch 02, directory errors occurred when renaming a file. The directory cache information was not being updated correctly. 3) VERITAS Incident 92686 The DMAPI dm_read_invis function was returning a 0 instead of the number of bytes read because a tunable was not being initialized correctly. (from 110434-06) 4) VERITAS Incident 39397 (Sun ID 4473431) After upgrading to VxFS 3.4, a high number of ioctl failures were reported when the fsadm -d command was used to defragment file systems. The directory sorting code in fsadm was modified to improve performance. 5) VERITAS Incident 73161 (Sun ID 4431015) System panic occurred while editing quotas (vxedquota command). 6) VERITAS Incident 80383 For operations involving large directories, reconfiguring a cluster sometimes causes directory errors and marked a file system for a full fsck. 7) VERITAS Incident 82077 (Sun ID 4546309) Renaming files in large directories occasionally caused a directory operation error and marked a file system for a full fsck. 8) VERITAS Incident 82334 There were numerous performance enhancements to VxFS to improve the handling of large directory caches. 9) VERITAS Incident 83129 An extended attribute class shared between VxFS and the file server application could cause data corruption. 10) VERITAS Incident 85889 System hang occurred because of the long time required for processing inactive inodes on a disabled file system. 11) VERITAS Incident 89711 Directory errors occurred when updating the hash list. After a file or directory was removed, its name was not found on the hash chain, thus generating directory error messages (vxfs: mesg 008, vxfs: mesg 009). 12) VERITAS Incident 90066 A race condition occurred between writes to Quick I/O files and the removal of Storage Checkpoints (used by Block-Level Incremental (BLI) backups). The Quick I/O write was dropped, but the I/O was, incorrectly, marked as done. (from 110434-05) (from 110434-04) (from 110434-03) 1) VERITAS Incident 18142 The VxFS error handling policy was changed to not mark inodes bad on disk because there are some situations, such as intermittent hardware problems, where correct metadata can be considered corrupted. 2) VERITAS Incident 38669 The vxrestore(1M) online manual page was updated to better explain error conditions. 3) VERITAS Incident 52408 On Solaris 8, the utmp and wtmp database files were superseded by the utmpx and wtmpx database files. For the vxdump command to work correctly, it was modified to use the getutxent(3C) function to access utmpx. 4) VERITAS Incident 53075 Because the file size was not a multiple of a 512-bite sector, a Quick I/O file could not be resized to 1 byte less than 2 GB. 5) VERITAS Incident 57603 System panicked during an extent reorganization because of a race condition between the vx_ialloc and vx_rename1 functions. 6) VERITAS Incident 57694 (Sun ID 4404637) When the setfacl or acl system call was used to set file permissions and a mask (CLASS_OBJ) value was specified, if the mask value was different from the group permissions, VxFS would set the wrong value for the group permission bits. 7) VERITAS Incident 59984 System hang occurred due to a deadlock condition between an inode blockmap lock and a disk block buffer. 8) VERITAS Incident 62971 (Sun ID 4423662) VxFS file system buffer pages were being allocated as kernel pages instead of user pages. 9) VERITAS Incident 62978 On Solaris 8 systems, the remote host's name was not correct in the output displayed from the vxdump command. 10) VERITAS Incident 63546 (Sun ID 4432450) Even though the mount command datainlog option was selected, it was not being reported correctly in the /etc/mnttab file. 11) VERITAS Incident 64192 On systems with VxFS 3.4 installed, panics occurred when trying to modunload the Global Atomic Broadcast (GAB) software. 12) VERITAS Incident 68523 (Sun ID 4453199) The warning message "no entries found in /etc/mnttab" incorrectly displayed when trying to umount VxFS file systems using a script that ran umount commands in the background. (from 110434-02) (from 110434-01) 1) VERITAS Incident 23593 VxFS now implements the quota API documented in the Solaris quotactl(7I) manual page. Users who have written their own quota tools based on the Q_QUOTACTL ioctl can now use those tools on VxFS file systems. However, you cannot administer VxFS file system quotas using the Q_QUOTACTL ioctl from a client which mounts VxFS over NFS. This capability will not be available until a modification to the RPC quota daemon (enabling quotas on file systems other than UFS) is implemented on the Solaris operating system. 2) VERITAS Incident 32433 (Sun ID 4350275) Although space was actually available after deleting files, the resulting free space was not displayed in the output of the df command. 3) VERITAS Incident 51154 Incorporated VxFS system statistic reporter. 4) VERITAS Incident 54546 A VxFS file system could not be successfully unmounted after a failover scenario. This occurred because the file system was exported and the unsharing of a disabled file system was not handled correctly by VxFS. 5) VERITAS Incident 54944 VxFS commands were capable of supporting a message catalog to retrieve localized messages, but the commands were being built without this support in VxFS releases. Starting with this release, VxFS is delivered with internationalization (I18N) support enabled for messages displayed by VERITAS File System commands. Commands such as fsck_vxfs that prompt users for input are not internationalized. 6) VERITAS Incident 55091 (Sun ID 4375699 and 4375709) The command "mount -F vxfs -g " set both the global and noglobal options in the /etc/mnttab file. This problem occurred while testing SunCluster. 7) VERITAS Incident 55997 (Sun ID 4387946) The pages in, pages out, and pages free counters added in Solaris 7 were not being updated by VxFS. 8) VERITAS Incident 56313 (Sun ID 4403414) If vxdump was used to back up a snapshot of a VxFS file system, the command used the time it was run from the /etc/dumpdates file instead of the time the snapshot was taken, resulting in files never being backed up. This problem was inadvertently reintroduced into the VxFS 3.4 release. 9) VERITAS Incident 58063 (Sun ID 4395201) VxFS often requires more than the default 8K kernel stack size, so during the VRTSvxfs installation, entries are added to the /etc/system file to increase the kernel thread stack size to 16K. 10) VERITAS Incident 58247 (Sun ID 4391430) The "qlogrec -s" command was returning the wrong exit status so that a VERITAS Volume Manger (VxVM) error message was being displayed in a non-VxVM environment. 11) VERITAS Incident 58780 (Sun ID 4412462) The "mount -g -o remount" command run on a read-only VxFS file system incorrectly returned a device busy error. Changes to VxFS and Sun Cluster PXFS code resolved the problem. README -- Last modified date: Friday, February 7, 2003