Updated s390utils packages that fix multiple bugs and add multiple enhancements are now available for Red Hat Enterprise Linux 6.
The s390utils packages contain a set of utilities and daemons related to Linux for the IBM System z architecture.
- The cmsfs-fuse did not correctly update the number of records on the disk under certain conditions. This could result in an unreadable file situation when the last free data block on the disk was used. The cmsfs-fuse tool has been modified to update the highest record number according to the number of records written before the disk is full. The problem with unreadable files no longer occurs.
- Previously, FBA-512 disks could not be mounted using the cmsfs-fuse utility because csmfs-fuse expected to find the label information at a different position than it is located on FBA-512 disks. Also, the block size of the formatted FBA-512 disk can differ from the usual FBA disk block size, which is
512 bytes. With this update, cmsfs-fuse has been modified to detect the label information of FBA-512 disks and the formatted block size is now read from the label. FBA-512 disks can now be mounted with cmsfs-fuse as expected.
- The cmsfs-fuse utility incorrectly calculated logical address of the data block that was to be allocated or freed. As a consequence, a write operation failed if a disk with a block size of
512 byteswas larger than
256 MB. With this update, cmsfs-fuse has been modified to calculate logical addresses correctly, and disks with a block size of 512 bytes can be written to regardless of their capacity.
- Under certain circumstances, cmsfs-fuse could incorrectly calculate the end of a file when parsing data record of a file in the fixed record format. As a consequence, an attempt to read such a file failed with an I/O error. The cmsfs-fuse has been modified to calculate data records and detect the end of a file correctly. Read operations on files in the fixed record format are now successful.
- When performing multiple subsequent write operations on a file in the fixed record format, cmsfs-fuse could, under certain circumstances, incorrectly determine the current write position. As a consequence, write operations could fail. The cmsfs-fuse tool now maintains, as long as a file is open for writing, a write pointer that refers to the current write position, and thus allows
contiguous writesto the file in the fixed record format without any failures.
- The cmsfs-fuse utility did not reset the record length attribute after finishing a write operation. As a consequence, the next write operation failed if a disk was mounted with the
-o big_writesoption, which enables write operations bigger than
4 KB, and the previously written record was larger than a disk block size. With this update, cmsfs-fuse resets the record length attribute after every write operation, and writing to a file no longer fails in the scenario described.
qetharputility did not check the lenght of the given interface name parameter. Therefore, the
qetharpcommand terminated with a buffer overflow when it was executed with an interface name that was longer than
16 bytes. With this update,
qetharpchecks the length of the interface name parameter, and properly exits with the
Error: interface name too longerror message if the parameter is longer than it is allowed to be.
- Due to the redundant
free()function call in the configuration file of cmsfs-fuse, the utility attempted to deallocate already freed memory. As a consequence, cmsfs-fuse expressed unpredictable behavior in the file type translation mode, such as a no longer accessible file system. With this update, the superfluous free() function call has been removed, and cmsfs-fuse now behaves as expected.
- Under certain circumstances, a file size calculation could cause the data type overflow situation, which resulted in a negative value. As a consequence, it was impossible to create files larger than
2 GB. With this update, cmsfs-fuse has been modified to cast data type of variables, structure members and functions used in the calculation to a longer data type before calculating the file size. The cmsfs-fuse utility now works as expected and files larger than
2 GBcan now be created.
- The lsmem and chmem utilities assumed only contiguous memory blocks. Therefore, if the memory was non-contiguous and memory blocks did not follow in the presumed order, the lsmem utility did not show available memory that followed after a part of the physical address space that was not mapped to physical memory, a so called
memory hole, and the chmem utility did not work at all. The lsmem and chmem utilities have been modified to work correctly with non-contiguous memory.
- The lscss and lsdasd tools did not correctly handle a situation when running on a
sysfsdevice tree that was changing. If a device disappeared from the device tree while lscss or lsdasd was attempting to access attributes of the device, the tool displayed pointless error messages. With this update, the lscss and lsdasd code has been modified to suppress the related error messages. In addition, the return code of the
lsdasd -hcommands has been corrected.
- The lsluns utility did not check whether the
SCSI Generic (sg)driver was loaded in the kernel and
sg functionalitywas thus available. Therefore, lsluns silently failed when it was started and
sg functionalitywas unavailable on the system. With this update, lsluns now includes the missing check and exits with an error message when it is started on the system with the
- The af_iucv(8) man page now contains previously missing information about
HiperSocket connections, including an explanation on how to configure a
- Previously, the dumpconf utility used the
DELAY_MINUTESvariable to delay restart of a system on
kernel panic. However, users expected immediate action, therefore dumpconf has been modified to set the
0on system restart. Restart of the system with dumpconf is now triggered immediately.
cpuplugddaemon did not properly handle lines commented out and did not correctly match strings in its configuration file. Consequently, lines in the configuration file that were commented out could be executed, which resulted in a parsing error, and invalid variable names were sometimes not rejected. The comment handling and string matching routines has been corrected in the code, and
cpuplugdnow behaves as expected when parsing the configuration file.
- When calculating a date for a timestamp, the Perl localtime function incorrectly returned month within a
range from 0 to 11instead of a
range from 1 to 12, which resulted in timestamps shifted by one month backward. To correct this problem, returned integer is incremented by one. The zfcpdbf now generates correct timestamps.
lsluns --helpcommand incorrectly suggested using an invalid
--portsoption. This mistake has been corrected, and the
lsluns --helpnow correctly displays the
- The fdasd utility did not distinguish between interactive and non-interactive mode. Therefore, when running the fdasd utility with the
--autooption on a device with no valid disk label, fdasd could stop with the following output:
no known label Should I create a new one? (y/n)Or it could fail with the following error message:
Disc does not contain a VOL1 label, cannot create partitions. exiting...With this update, the fdasd has been modified to properly check whether it should run in interactive or non-interactive mode, and it behaves accordingly.
cpuplugd(8) man page has been modified to correct several typos and add one missing word.
- Previously, the
cpuplugddaemon did not handle a sub-string matching correctly. The daemon also used an incorrect string length when working with user-defined variables. As a consequence, the daemon returned a parsing error if a user-defined variable name matches the prefix of a pre-defined variable, or a substring of another user-defined variable. With this update, the sub-string matching has been corrected, and cpuplugd now uses correct string length in string comparing operations. Parsing errors no longer occur in the scenario described.
cpuplugddid not use any mechanism to prevent multiple
cpuplugdinstances from starting. As a consequence, a race between the PID file creation and a daemon startup could result in multiple cpuplugd instances running concurrently. To resolve this problem, a file locking mechanism that uses the
flock()function has been introduced in the
cpuplugdcode. Only one instance of
cpuplugdis now allowed to run at the same time.
cpuplugdhad previously not implemented sanity checks regarding minimum and maximum values for valid
CPUand memory intervals. If a configuration with incorrect intervals was used, the daemon could not work properly, and CPU and memory could not be used optimally. With this update,
cpuplugdnow includes CPU and memory sanity checks, ensuring its efficiency.
- Due to a missing
ferror()test, the lsreipl utility returned an error message when it attempted to read an empty
sysfsfile. With this update, the missing check has been added, and lsreipl no longer returns error messages when attempting to read an empty file.
libzfcphbaapilibrary was missing some event thread cleanup code in the
HBA_FreeLibrary()function. Therefore, the zfcp_ping tool could terminate unexpectedly with a segmentation fault if no on-line adapter was discovered. The missing event thread cleanup has been added in the code using the
pthread_joinfunctions. The zfcp_ping tool no longer crashes under these circumstances.
- The s390utils-iucvterm package uses the
grepcommand in its postinstall and postuninstall scripts but it was not dependent on the grep package. Therefore, error messages were displayed when installing s390utils-iucvterm. With this update, the grep package has been added as a prerequisite for s390utils-iucvterm. No error messages now occur during the package installation.
- When scanning for active
Logical Unit Numbers(LUNs) without the
-a, --activeoption, the lsluns utility filtered a scan for well known LUNs with value
0x0000000000000000, because the SCSI report luns command is sent only to these LUNs. As a consequence, the
lsluns -acommand did not show all active LUNs but only active
well known LUNs. The lsluns utility has been modified to not filter LUNs when issued with the
-aoption, and it now shows all active LUNs.
- The dasdinfo utility was missing a return code and the tool always returned
exit code 0even if an error had occured. This update adds the missing return code and the dasdinfo tool now returns correct return code values.
- The s390utils-libzfcphbaapi package did not specify the correct location of the
libzfcphbaapi.socommon library to the
/etc/hba.confconfiguration file. Therefore, s390utils-libzfcphbaapi failed to register with the
/etc/hba.confconfiguration file. With this update, the postinstall script adds the
libzfcphbaapi /usr/lib64/libzfcphbaapi-2.1.soline to the
/etc/hba.confconfiguration file and thus registers the s390utils-libzfcphbaapi package.
- The ziomon utility used the
--outputcommand line option in the code, although it was referred to as the
--outfileoption in the documentation. Using the
--outfileoption as suggested by documentation thus resulted in a ziomon failure. With this update, ziomon has been modified to accept the
--outfilecommand line option as documented.
- The ziomon utility did not check whether a
debugfsfile system is mounted on the
/sys/kernel/debug/directory. Therefore, if the mount point was a different directory, ziomon failed. The missing test is now included in ziomon, and it now works as expected: continues if a file system is mounted on the
/sys/kernel/debug/directory, or exits with the
ziomon: Error: Debugfs not mounted on /sys/kernel/debug.error message if a file system is mounted on a different mount point.
- To print parameters of the zipl utility for
device-mapper multipathdevices, zipl uses the
zipl_helper.device-mapperscript, which parses output of other programs. If any of these programs had
localedependent output, the script was unable to parse the output. Consequently, zipl terminated with the following error:
Script could not determine target parametersTo avoid this problem, the
zipl_helper.device-mapperscript has been modified to set up standard
localefor the current process and all child processes. The problem described no longer occurs.
- The latest versions of the
Linux 2.6 schedulerprovide the same CPU optimization functionality as the
cpuplugddaemon does, without the negative effects of
cpuplugdoperations. Therefore, the
cpuplugddaemon is now disabled on the system by default.
- With this update, the cpuplugd daemon has been significantly improved:
- A set of rules used by the
cpuplugddaemon has been improved, and cpuplugd now provides more advanced control of the
VM Resource Manager(VMRM)
Cooperative Memory Management(CMM) memory balloon.
- The daemon now also provides a history function, which allows an access to previous data.
- Any data from the
/proc/meminfofiles can now be used in
cpuplugdrules and user-defined variables.
- A new
cpustat.total_ticksvariable has been introduced, which simplifies user-defined CPU percentage calculations.
- The process of timestamp generation has been simplified, and a bug with wrong timestamps and intervals due to incorrect counts with microseconds, has been fixed.
- Previously, the daemon did not re-allocate and re-initialize the history data on a
SIGHUPsignal receipt. This could cause the daemon to terminate unexpectedly with a segmentation fault if the maximum history level increased. The history data is now re-allocated and re-initialized when the daemon is reloaded and maximum history level has changed.
- The daemon used a specified update interval instead of the actual time to determine the duration of the
sleep()function and for
swap ratecalculation. This could lead to incorrect data under certain circumstances. The
cpuplugddaemon now uses the actual time in its calculations.
- The chreipl tool has been improved and now includes the following modifications:
- Support for
re-IPLfrom multipath devices has been added.
- Support for
Named Saved System(NSS) has been added.
- Additional kernel parameters now can be specified for the next
- Support for
auto target" has been added. For the ccw, fcp, and node targets, chreipl can automatically find the correct
All users of s390utils are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.