APAR status
Closed as program error.
Error description
When upgrading from IBM MQ 9.4.0.0 to 9.4.0.5 using the command: rpm -U <package name(s)> the terminal outputs a lot of data. For example: $ sudo rpm -U MQSeriesRuntime-9.4.0-5.x86_64.rpm \ MQSeriesServer-9.4.0-5.x86_64.rpm \ MQSeriesJava-9.4.0-5.x86_64.rpm \ MQSeriesJRE-9.4.0-5.x86_64.rpm \ MQSeriesWeb-9.4.0-5.x86_64.rpm \ MQSeriesGSKit-9.4.0-5.x86_64.rpm \ MQSeriesRuntime-9.4.0-0.x86_64 MQSeriesRuntime-9.4.0-5.x86_64 MQSeriesJava-9.4.0-5.x86_64 MQSeriesJRE-9.4.0-5.x86_64 MQSeriesGSKit-9.4.0-5.x86_64 MQSeriesServer-9.4.0-5.x86_64 MQSeriesWeb-9.4.0-5.x86_64 /opt/mqm /opt/mqm/READMES /opt/mqm/READMES/readme_cs_CZ /opt/mqm/READMES/readme_de_DE /opt/mqm/READMES/readme_en_US /opt/mqm/READMES/readme_es_ES /opt/mqm/READMES/readme_fr_FR /opt/mqm/READMES/readme_hu_HU /opt/mqm/READMES/readme_it_IT /opt/mqm/READMES/readme_ja_JP ... ... ...
Local fix
Problem summary
**************************************************************** USERS AFFECTED: Users of IBM MQ 9.4 who are upgrading the installation version: IBM MQ 9.4.0.0 to a newer version, such as IBM MQ 9.4.0.5, using the 'rpm -U' command to perform the upgrade. Platforms affected: Linux on x86-64, Linux on Power, Linux on zSeries **************************************************************** PROBLEM DESCRIPTION: Several Linux install related issues are being resolved in the code changes associated with this APAR, which were discovered during the testing of upgrading IBM MQ 9.4.0.0 to 9.4.0.5. These include: 1: Excessive output is seen on the 'stderr' stream when upgrading IBM packages from the version: IBM MQ 9.4.0.0 to a later version using the 'rpm -U' command (as opposed to uninstalling 9.4.0.0 using 'rpm -e' and installing the new packages using the 'rpm -i' commands), the install scripts associated with the 9.4.0.0 'MQSeriesRuntime' package displays data to the 'stderr' stream. This data includes: (a) The set of RPM packages which include the installation path directory (eg. '/opt/mqm') in their manifest. (b) The manifest content of the MQSeriesRuntime package. For example, the following output is seen when upgrading between the versions 9.4.0.0 and 9.4.0.5: $ sudo rpm -U MQSeriesRuntime-9.4.0-5.x86_64.rpm \ MQSeriesServer-9.4.0-5.x86_64.rpm \ MQSeriesJava-9.4.0-5.x86_64.rpm \ MQSeriesJRE-9.4.0-5.x86_64.rpm \ MQSeriesWeb-9.4.0-5.x86_64.rpm \ MQSeriesGSKit-9.4.0-5.x86_64.rpm \ MQSeriesRuntime-9.4.0-0.x86_64 MQSeriesRuntime-9.4.0-5.x86_64 MQSeriesJava-9.4.0-5.x86_64 MQSeriesJRE-9.4.0-5.x86_64 MQSeriesGSKit-9.4.0-5.x86_64 MQSeriesServer-9.4.0-5.x86_64 MQSeriesWeb-9.4.0-5.x86_64 /opt/mqm /opt/mqm/READMES /opt/mqm/READMES/readme_cs_CZ /opt/mqm/READMES/readme_de_DE /opt/mqm/READMES/readme_en_US /opt/mqm/READMES/readme_es_ES /opt/mqm/READMES/readme_fr_FR /opt/mqm/READMES/readme_hu_HU /opt/mqm/READMES/readme_it_IT /opt/mqm/READMES/readme_ja_JP ... ... ... <in excess of 4000 directory and filenames> This output is caused by an typographical error in the '%postun' post uninstall script of the MQSeriesRuntime component which directed the output from a command to the stderr stream in error. 2: A warning message is observed when uninstalling IBM MQ 9.4.0.5 after an upgrade has taken place from IBM MQ 9.4.0.0, if the optional 'MQSeriesSDK' package has not been installed. For example: Step 1: Install IBM MQ 9.4.0.0 Step 2: Upgrade to IBM MQ 9.4.0.5 using the 'rpm -U' command. Step 3: Uninstall IBM MQ 9.4.0.5 (eg. 'rpm -e'). When step 3 is run, then the following warning is seen from the 'rpm -e' command: warning: file /opt/mqm/inc: remove failed: No such file or directory This warning is caused by the post-uninstall script for the MQ 9.4.0.0 packages removing the directory: /opt/mqm/inc which had not been populated with files if the 'MQSeriesSDK' package was not installed. Subsequently when the MQSeriesServer package was uninstalled, the RPM file database warned that an associated directory was not present, and so could not be removed. 3: When upgrading the version of IBM MQ using the "rpm -U" method, there were no checks to determine if the queue manager or IBM MQ Web Console/REST API were running prior to starting the upgrade. Because the package uninstall scripts do check for a running queue manager, this results in the uninstall of the old packages failing during the upgrade, leaving both the new and old packages being listed as being installed with the RPM database at the same time. 4: When repackaging the MQ 9.4 packages using the script 'crtmqpkg', it was possible to install the repackaged RPM filesets to the same location as a same-version installation. For example: # Install the standard packages to the default location: $ sudo rpm -i MQSeriesRuntime-9.4.0-0.x86_64.rpm MQSeriesServer-9.4.0-0.x86_64.rpm MQSeriesGSKit-9.4.0-0.x86_64.rpm # Repackage the RPM filesets to generate a new name: $ sudo ./crtmqpkg MQ9400 Repackaging IBM MQ for "x86_64" using suffix "MQ9400" and Installation path "/opt/mqm" INFO: Return code "0" from rpmbuild command for package "MQSeriesAMQP_MQ9400" INFO: Return code "0" from rpmbuild command for package "MQSeriesAMS_MQ9400" ... ... ... # Install these repackaged RPM filesets to the same location as used previously, ie. the default location of '/opt/mqm': $ cd /var/tmp/mq_rpms/MQ9400/x86_64/ $ sudo rpm -i MQSeriesRuntime_MQ9400-9.4.0-0.x86_64.rpm MQSeriesServer_MQ9400-9.4.0-0.x86_64.rpm MQSeriesGSKit_MQ9400-9.4.0-0.x86_64.rpm # List the MQ packages which are installed: $ rpm -qa | grep MQSeries MQSeriesServer-9.4.0-0.x86_64 MQSeriesGSKit-9.4.0-0.x86_64 MQSeriesServer_MQ9400-9.4.0-0.x86_64 MQSeriesRuntime-9.4.0-0.x86_64 MQSeriesGSKit_MQ9400-9.4.0-0.x86_64 MQSeriesRuntime_MQ9400-9.4.0-0.x86_64 In this example, there are now 2 identical MQSeries packages installed for each component, to the same location. This was not the intended design of the MQ RPM installation mechanism, and has been corrected. 5. Package verification fails for the MQSeriesRuntime component, when the license is accepted before installing the MQSeriesRuntime component. If the license is accepted prior to installing the MQSeriesRuntime component, such as in the following example, then a verification check of the MQSeriesRuntime component will show multiple changes: $ sudo ./mqlicense.sh $ sudo rpm -i MQSeriesRuntime-9.4.0-0.x86_64.rpm $ rpm --verify MQSeriesRuntime .......T. /opt/mqm/licenses/Chinese.txt .......T. /opt/mqm/licenses/Chinese_TW.txt .......T. /opt/mqm/licenses/Czech.txt .......T. /opt/mqm/licenses/English.txt .......T. /opt/mqm/licenses/French.txt .......T. /opt/mqm/licenses/German.txt .......T. /opt/mqm/licenses/Greek.txt .......T. /opt/mqm/licenses/Indonesian.txt .......T. /opt/mqm/licenses/Italian.txt .......T. /opt/mqm/licenses/Japanese.txt .......T. /opt/mqm/licenses/Korean.txt .......T. /opt/mqm/licenses/Lithuanian.txt .......T. /opt/mqm/licenses/Polish.txt .......T. /opt/mqm/licenses/Portuguese.txt .......T. /opt/mqm/licenses/Russian.txt .......T. /opt/mqm/licenses/Slovenian.txt .......T. /opt/mqm/licenses/Spanish.txt .......T. /opt/mqm/licenses/Turkish.txt .......T. /opt/mqm/licenses/non_ibm_license.txt S.5....T. /opt/mqm/licenses/notices.txt The codes for these differences correspond to: T --> Modification time of the file. 5 --> MD5 checksum of the file. S --> The file's size. This has been corrected by the code change associated with APAR, for all files excluding the file: /opt/mqm/licenses/notices.txt which will continue to show a difference, as follows: $ sudo rpm -i MQSeriesRuntime-9.4.0-5.x86_64.rpm $ rpm --verify MQSeriesRuntime S.5...... /opt/mqm/licenses/notices.txt 6. When repackaging the MQSeriesRDQM component using 'crtmqpkg <suffix> <install_path> an error message is observed in the output. For example, when issuing the command: crtmqpkg MQ9400 /opt/mqm9400 the following error message would be observed on the console when the MQSeriesRDQM package was repackaged: grep: /etc/opt/mqm9400/mqinst.ini: No such file or directory 12:MQSeriesRDQM_MQ9400-9.4.0-0 ################################# [ 38%] 7. When upgrading from MQ 9.4.0.0 to 9.4.0.5 on Linux (s390x) and asking the RPM database to verify the MQSeriesServer component, RPM reports that a directory is missing. For example: $ rpm --verify MQSeriesServer-9.4.0-5 missing /opt/mqm/lib/compat This problem is only seen on the s390x variant of the IBM MQ on Linux platforms.
Problem conclusion
The Linux RPM package install scripts have been updated to not output unnecessary data to the 'stderr' stream when an upgrade is taking place, and address the various other problems identified above. Note that this APAR cannot change the install scripts which were included in the 9.4.0.0 bundle, as these are already publicly available and may be what you have already installed on your system. Instead the code change associated with this APAR will rectify this issue when upgrading from IBM MQ 9.4.0.5 onwards to future releases. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.4 LTS 9.4.0.5 v9.x CD 9.4.1 The latest available maintenance can be obtained from 'IBM MQ Recommended Fixes' https://www.ibm.com/support/pages/recommended-fixes-ibm-mq If the maintenance level is not yet available information on its planned availability can be found in 'IBM MQ Planned Maintenance Release Dates' https://ibm.biz/mqplannedmaintenance ---------------------------------------------------------------
Temporary fix
Comments
APAR Information
APAR number
IT46528
Reported component name
MQ BASE 9.4
Reported component ID
5724H72A1
Reported release
940
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2024-07-15
Closed date
2024-09-05
Last modified date
2024-09-05
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
MQ BASE 9.4
Fixed component ID
5724H72A1
Applicable component levels
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"940","Line of Business":{"code":"LOB67","label":"IT Automation \u0026 App Modernization"}}]
Document Information
Modified date:
11 September 2024