US/Canadian Site 

Rocket Business Connect

UNV-5294
Tech Note
2011-06-23 14:14
2011-06-24 20:44
11.1.0, 11.1.2
Alert: Dynamic file corruption may occur on UV 11.1 on AIX due to device numbers being returned as non unique values.

The combination of device number and inode number is used to uniquely identify a file to UniVerse. On a given system, the device number for each file system should be a unique value. Each file on a file system is assigned a unique inode number. Two files on different file systems might be assigned the same inode number, but within a given file system the assigned inode number would be a unique value. When the device number for a file system is not returned as a unique value, two files on different file systems might be treated by UniVerse as the same file.


At UniVerse 11.1.0 and 11.1.2 on AIX, an issue exists in the method used by UniVerse to return a unique device number. Related to the 64bit port of UV 11.1 on AIX, the device number returned might be truncated. The truncation could result in two different file systems returning the same device number. Having more than one file system return the same device number could result in file corruption as described next.


When UniVerse opens a dynamic file, an entry is placed in the T30FILE table in shared memory. The entry in the T30FILE table contains relevant information about the characteristics of the open dynamic file such as current modulo, split load, merge load, etc. The file in the T30FILE table is uniquely referenced by a device and inode number. If two dynamic files on separate file systems have the same inode number, happen to be open at the same time, and UniVerse is incorrectly returning the same device number for both file systems, file corruption can occur. The corruption would occur due to the two different files sharing the same entry in the T30FILE table. The characteristics of one of the open dynamic files could be written to the header of the other dynamic file resulting in corruption.


To summarize, for dynamic file corruption to occur at UV 11.1.0 or 11.1.2 on AIX, the following criteria would be necessary:

  • UniVerse returns the same device number for more than one file system containing UniVerse dynamic files
  • Matching inode numbers exist for dynamic files on the previously mentioned file systems
  • The dynamic files with the matching inode numbers are open at the same time

A script is attached which can be run to determine if UniVerse will return the same device number for different file systems on your system. The script is named device.sh and should be installed in an empty directory on your AIX system. Once installed, perform the following commands as root:


# chmod u+x device.sh


# ./device.sh


The script will create the info.txt file in the current directory. The device number UniVerse returns for each mounted file system will be included in the info.txt file. Review this information looking specifically for multiple file systems returning the same device number. If more than one file system returns the same device number, dynamic file corruption is possible if the other 2 criteria noted above are also true.


Attachments

device.sh

Send feedback to u2support@rocketsoftware.com