System panic with redzone violation (write past end of buf) while freeing inodes fiostats structure with following error and stack trace, fiostats structure holds file & subfile I/O statistics.
kernel memory allocator:
redzone violation: write past end of buffer
buffer=<buffer_address> bufctl=0 cache: kmem_alloc_80
Two types of File-level stats are maintained internally within VxFS, vx_qiostat is recorded during file access in Quick I/O (qio) mode and vx_fiostats during non-qio mode. Common stats are copied internally between vx_qiostat and vx_fiostat structure when file access mode is change between qio mode to non-qio or vice versa E.g while trying to copy an Oracle Data file using cp command will change the access mode for cp from qio to non-qio.
While switching from qio to non-qio mode, vx_qiostats structure is freed and vx_fiostats structure is allocated to maintain File-level stats. Due to a race condition between thread “A” freeing vx_qiostats which also allocate vx_fiostats to copy common values and another thread “B” updating vx_qiostats as file is opened in qio mode, the newly allocated vx_fiostats by thread “A” is corrupted as thread “B” writes to it assuming vx_qiostats is already allocated.
One of the following workaround can be used.
1- Do not use cp to copy files that are in use by oracle database.
2- Modify /etc/system to include “set vxfs:vx_fiostats_tunable=0” and reboot the system to avoid the race condition.
A patch vxfs-5.1SP1RP2HF2 is created to resolve the race condition.
Please contact Symantec Technical Support using the method described in http://www.symantec.com/support/contact_techsupp_static.jsp to obtain this patch.
Veritas Filesystem 5.1SP1RP2