4.277. s390utils
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.
Bug Fixes
- BZ#746202
- 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.
- BZ#746201
- 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. - BZ#746195
- 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 bytes
was larger than256 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. - BZ#745940
- 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.
- BZ#745939
- 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 writes
to the file in the fixed record format without any failures. - BZ#745938
- 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_writes
option, which enables write operations bigger than4 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. - BZ#736397
- The
qetharp
utility did not check the lenght of the given interface name parameter. Therefore, theqetharp
command terminated with a buffer overflow when it was executed with an interface name that was longer than16 bytes
. With this update,qetharp
checks the length of the interface name parameter, and properly exits with theError: interface name too long
error message if the parameter is longer than it is allowed to be. - BZ#695380
- 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. - BZ#745936
- 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 than2 GB
can now be created. - BZ#740302
- 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. - BZ#738341
- The lscss and lsdasd tools did not correctly handle a situation when running on a
sysfs
device 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 thelscss -h
andlsdasd -h
commands has been corrected. - BZ#738340
- The lsluns utility did not check whether the
SCSI Generic (sg)
driver was loaded in the kernel andsg functionality
was thus available. Therefore, lsluns silently failed when it was started andsg functionality
was 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 thesg functionality
unavailable. - BZ#738329
- The af_iucv(8) man page now contains previously missing information about
HiperSockets
andHiperSocket connections
, including an explanation on how to configure aHiperSocket device
. - BZ#736035
- Previously, the dumpconf utility used the
DELAY_MINUTES
variable to delay restart of a system onkernel panic
. However, users expected immediate action, therefore dumpconf has been modified to set theDELAY_MINUTES
variable to0
on system restart. Restart of the system with dumpconf is now triggered immediately. - BZ#732739
- The
cpuplugd
daemon 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, andcpuplugd
now behaves as expected when parsing the configuration file. - BZ#730978
- When calculating a date for a timestamp, the Perl localtime function incorrectly returned month within a
range from 0 to 11
instead of arange 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. - BZ#730370
- The
lsluns --help
command incorrectly suggested using an invalid--ports
option. This mistake has been corrected, and thelsluns --help
now correctly displays the--port
option. - BZ#729610
- The fdasd utility did not distinguish between interactive and non-interactive mode. Therefore, when running the fdasd utility with the
--config
or--auto
option 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. - BZ#726414
- The
cpuplugd
(8) man page has been modified to correct several typos and add one missing word. - BZ#725737
- Previously, the
cpuplugd
daemon 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. - BZ#718745
- The
cpuplugd
did not use any mechanism to prevent multiplecpuplugd
instances 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 theflock()
function has been introduced in thecpuplugd
code. Only one instance ofcpuplugd
is now allowed to run at the same time. - BZ#718697
- The
cpuplugd
had previously not implemented sanity checks regarding minimum and maximum values for validCPU
and 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,cpuplugd
now includes CPU and memory sanity checks, ensuring its efficiency. - BZ#718198
- Due to a missing
ferror()
test, the lsreipl utility returned an error message when it attempted to read an emptysysfs
file. With this update, the missing check has been added, and lsreipl no longer returns error messages when attempting to read an empty file. - BZ#713817
- The
libzfcphbaapi
library was missing some event thread cleanup code in theHBA_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 thepthread_cancel
andpthread_join
functions. The zfcp_ping tool no longer crashes under these circumstances. - BZ#711998
- The s390utils-iucvterm package uses the
grep
command 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. - BZ#711775
- When scanning for active
Logical Unit Numbers
(LUNs) without the-a, --active
option, the lsluns utility filtered a scan for well known LUNs with value0xc101000000000000
and0x0000000000000000
, because the SCSI report luns command is sent only to these LUNs. As a consequence, thelsluns -a
command did not show all active LUNs but only activewell known LUNs
. The lsluns utility has been modified to not filter LUNs when issued with the-a
option, and it now shows all active LUNs. - BZ#705404
- The dasdinfo utility was missing a return code and the tool always returned
exit code 0
even if an error had occured. This update adds the missing return code and the dasdinfo tool now returns correct return code values. - BZ#704505
- The s390utils-libzfcphbaapi package did not specify the correct location of the
libzfcphbaapi.so
common library to the/etc/hba.conf
configuration file. Therefore, s390utils-libzfcphbaapi failed to register with the/etc/hba.conf
configuration file. With this update, the postinstall script adds thelibzfcphbaapi /usr/lib64/libzfcphbaapi-2.1.so
line to the/etc/hba.conf
configuration file and thus registers the s390utils-libzfcphbaapi package. - BZ#700471
- The ziomon utility used the
--output
command line option in the code, although it was referred to as the--outfile
option in the documentation. Using the--outfile
option as suggested by documentation thus resulted in a ziomon failure. With this update, ziomon has been modified to accept the--outfile
command line option as documented. - BZ#700470
- The ziomon utility did not check whether a
debugfs
file 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 theziomon: Error: Debugfs not mounted on /sys/kernel/debug.
error message if a file system is mounted on a different mount point. - BZ#729981
- To print parameters of the zipl utility for
device-mapper multipath
devices, zipl uses thezipl_helper.device-mapper
script, which parses output of other programs. If any of these programs hadlocale
dependent output, the script was unable to parse the output. Consequently, zipl terminated with the following error:Script could not determine target parameters
To avoid this problem, thezipl_helper.device-mapper
script has been modified to set up standardlocale
for the current process and all child processes. The problem described no longer occurs.
Enhancements
- BZ#700531
- The latest versions of the
Linux 2.6 scheduler
provide the same CPU optimization functionality as thecpuplugd
daemon does, without the negative effects ofcpuplugd
operations. Therefore, thecpuplugd
daemon is now disabled on the system by default. - BZ#694465
- With this update, the cpuplugd daemon has been significantly improved:
- A set of rules used by the
cpuplugd
daemon has been improved, and cpuplugd now provides more advanced control of theVM 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/vmstat
and/proc/meminfo
files can now be used incpuplugd
rules and user-defined variables. - A new
cpustat.total_ticks
variable 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
SIGHUP
signal 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 forswap rate
calculation. This could lead to incorrect data under certain circumstances. Thecpuplugd
daemon now uses the actual time in its calculations.
- BZ#632327
- The chreipl tool has been improved and now includes the following modifications:
- Support for
re-IPL
from multipath devices has been added.
- Support for
re-IPL
fromNamed Saved System
(NSS) has been added.
- Additional kernel parameters now can be specified for the next
re-IPL
.
- Support for
auto target
" has been added. For the ccw, fcp, and node targets, chreipl can automatically find the correctre-IPL
target.
All users of s390utils are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.