------------------------------------------------------------------------------- Fix Number: FJSVfsep-ARB-12-1201-2.el8.s390x Product Names and Versions: FUJITSU Enterprise Postgres Server Assistant 12 *1 *1 It is bundled to the server package of the following product. FUJITSU Software Enterprise Postgres Advanced Edition 12 SP1 for Linux on Z Creation date: 20.09.2024 ------------------------------------------------------------------------------- [High Risk Activity] The Customer acknowledges and agrees that the Product is designed, developed and manufactured as contemplated for general use, including without limitation, general office use, personal use, household use, and ordinary industrial use, but is not designed, developed and manufactured as contemplated for use accompanying fatal risks or dangers that, unless extremely high safety is secured, could lead directly to death, personal injury, severe physical damage or other loss (hereinafter "High Safety Required Use"), including without limitation, nuclear reaction control in nuclear facility, aircraft flight control, air traffic control, mass transport control, medical life support system, missile launch control in weapon system. The Customer, shall not use the Product without securing the sufficient safety required for the High Safety Required Use. In addition, Fujitsu (or other affiliate's name) shall not be liable against the Customer and/or any third party for any claims or damages arising in connection with the High Safety Required Use of the Product. Product and company names mentioned in this manual are the trademarks or registered trademarks of their respective owners. Copyright 2021-2024 FUJITSU LIMITED ------------------------------------------------------------------------------- [Notes] - This is the readme for RHEL 8. - This patch can be applied only to the arbitration server. - Please ensure that the following steps are carried out before applying or deleting this patch. - Do not set the library path of FUJITSU Enterprise Postgres (*1) to the environment variable(*2). (*1) /lib (*2) LD_LIBRARY_PATH and LD_LIBRARY_PATH_32. - Stop the running Mirroring Controller arbitration process. - If the application and restoration of this correction fail, collect the following materials and contact our technical staff. - /var/log/fsep_ASSISTANT_1201_patch.log - /var/opt/FJSVfupde/log (All files in log directory) - Perform a recovery procedure of return to the pre-apply and pre-restore state if. 1) Failed to apply or restore this fix. and 2) The following log files exist. and /var/log/fsep_ASSISTANT_1201_patch.log 3) The log file ends with one of the following. ROLLBACK(U): was failed(non-0 return value). ROLLBACK(I): was failed(non-0 return value). ROLLBACK(U): was failed(non-0 return value). ROLLBACK(I): was failed(non-0 return value). [Recovery procedure] 1) Run the following command to switch to the superuser on the system. $ su - Password:****** 2) Verify that the package is installed by running the following command. If it was not installed, run of "4)". # rpm -q FJSVfsep-ARB-12 # rpm -q FJSVfsep-ARB-OPJ-12 3) Run the following command to uninstall the package. # rpm -e FJSVfsep-ARB-12 --nodeps # rpm -e FJSVfsep-ARB-OPJ-12 --nodeps To confirm the uninstallation, run the following command. # rpm -q FJSVfsep-ARB-12 # rpm -q FJSVfsep-ARB-OPJ-12 4) Run the following command to install the package. # cd /PKG # rpm -i FJSVfsep-ARB-12-*.rpm(*1) \ --prefix= --nodeps # rpm -i FJSVfsep-ARB-OPJ-12-*.rpm(*1) \ --prefix= --nodeps 5) To confirm the installation, run the following command. # rpm -q FJSVfsep-ARB-12 # rpm -q FJSVfsep-ARB-OPJ-12 (*1)File names are different on apply failure and restore failure. ------------------------------------------------------------------------------- [Patch Description] The following fixes are included in this patch: Fix Number: FJSVfsep-ARB-12-1201-2.el8.s390x 01 PH22902 [ ]Security failure [ ]Serious failure ([ ]Degradation) [*]Incompatibility does not exist / [ ]Incompatibility exists - Frequency ([*]Always / [ ]Rarely / [ ]Irregularly) - Description When a emergency modification of FUJITSU Enterprise Postgres is applied, The following folder and file owners and groups are changed to non-root values. - /var/opt/FJSVfupde/backup//PKG - /var/opt/FJSVfupde/backup//TOOL - Requirements to reproduce this issue 1) Install the following products, and FUJITSU Enterprise Postgres Advanced Enterprise Server Edition 14SP1 FUJITSU Enterprise Postgres Advanced Edition 12 - 14SP1 FUJITSU Enterprise Postgres Standard Edition 12 - 14SP1 Symfoware Server Enterprise Extended Edition(Postgres) V12.5.0 - V12.7.0 Symfoware Server Enterprise Edition(Postgres) V12.4.1 - V12.7.0 Symfoware Server Standard Edition(Postgres) V12.4.1 - V12.7.0 2) Apply an emergency modification to a product of 1). - Action Modify owner and group to root. - Compatibility Information None. 02 PH23563 [ ]Security failure [*]Serious failure ([*]Degradation) [*]Incompatibility does not exist / [ ]Incompatibility exists - Frequency ([ ]Always / [*]Rarely / [ ]Irregularly) - Description Mirroring Controller Arbiter porcess may stops abnormally. - Requirements to reproduce this issue 1) Start the Mirroring Controller Arbiter process, and 2) Start the Mirroring Controller in either the primary server or the standby server, and 3) The Mirroring Controller in either the primary server or the standby server is stopped. Notes) The conditon 3) includes the situation that the communication between the Mirroring Controller and the Mirroring Controller Arbiter process breaks down such as stopping by using the mc_ctl command or shutdown the database server. - Action Fix the processing to stop the task in the Mirroring Controller Arbiter process to monitor the database server - Compatibility Information None. ------------------------------------------------------------------------------- [Accumulated Patches] The following fixes are included in this patch: Fix Number: FJSVfsep-ARB-12-1201-1.el8.s390x 01 PH21161 [ ]Security failure [*]Serious failure ([ ]Degradation) [ ]Incompatibility does not exist / [*]Incompatibility exists - Frequency ([*]Always / [ ]Rarely / [ ]Irregularly) - Description [Issue 1] When Mirroring Controller detects an error, degradation does not occur after arbitration server's fencing command is executed and automatic switch/disconnection may be failed. [Issue 2] When Mirroring Controller automatically switches, the message that the switch failed may output even if the switch succeeded. [Issue 3] When Mirroring Controller detects an error, the unnecessary arbitration server's fencing commands may work and automatic disconnection may not occur. [Issue 4] When Mirroring Controller detects log transfer network failure, the unnecessary primary server's fencing commands may work. [Issue 5] When mc_ctl switch or mc_ctl detach command are executed and Mirroring Controller detects an error, the command may terminate abnormally. [Issue 6] When mc_ctl switch command is executed, the command may terminate abnormally even if the switch is successful. [Issue 7] When mc_ctl detach command is executed, the command may terminate abnormally even if the disconnection is successful. [Issue 8] When mc_ctl stop command is executed, the command may terminate abnormally and Mirroring Controller process and Mirroring Controller monitoring process remain. - Requirements to reproduce this issue [Requirements to reproduce Issue 1] 1) Using the arbitration server with Mirroring Controller, and 2) Specify the value of 60 or more for fencing_command_timeout in arbitration configuration file, and 3) The Mirroring Controller process detects each of following errors, and - Operating system or server errors in primary server or standby server, or - Log transfer network failure. 4) It takes 60 or more seconds to perform arbitration processing and execute the fencing command by the arbitration server. [Requirements to reproduce Issue 2] 1) Using Mirroring Controller, and 2) The Mirroring Controller detects an error and automatic switch occurs, and 3) The total execution time to perform following processing during automatic switch is 60 seconds or more, and - Instance switching process (*1) - Post-switch command specified at post_switch_command in server configuration file (*2) 4) Instance switching process is succeeded. [Requirements to reproduce Issue 3] 1) Using the arbitration server with Mirroring Controller, and 2) The Mirroring Controller process in primary server detects log transfer network failure, and 3) The total execution time to perform following processing during disconnection is 60 seconds or more. - Pre-detach command specified at pre_detach_command in the server configuration file (*2) - Stopping the instance on the standby server during disconnection (*3) [Requirements to reproduce Issue 4] 1) Using Mirroring Controller, and 2) Specify 'command' for heartbeat_error_action in server configuration file, and 3) Set pre_detach_command in server configuration file, and 4) Specify the value of 60 or more for status_change_command_timeout in server configuration file, and 5) The Mirroring Controller process in primary server detects log transfer network failure, and 6) The total execution time to perform following processing during disconnection is 60 seconds or more. - Pre-detach command on standby server - Stopping the instance on the standby server during disconnecting (*3) [Requirements to reproduce Issue 5] 1) Using the arbitration server with Mirroring Controller, and 2) Set fencing_command in arbitration configuration file, and 3) Specify the value of 60 or more for fencing_command_timeout in arbitration configuration file, and 4) Execute one of the following commands, and - mc_ctl switch --force in standby server, or - mc_ctl detach in primary server. 5) Execution of the fencing command on the arbitration server succeeds in 60 or more seconds and within fencing_command_timeout. [Requirements to reproduce 1 of Issue 6] 1) Using Mirroring Controller, and 2) Execute mc_ctl switch in standby server, and 3) The total execution time to perform following processing in the 2)'s command is 60 seconds or more, and - Instance switching process - Post-switch command (*2) - Fencing command on standby server (*4)(*5) 4) Execution of the fencing command on the standby server succeeds within fencing_command_timeout in arbitration configuration file, and (*4)(*5) 5) Instance switching process is succeeded. [Requirements to reproduce 2 of Issue 6] 1) Using the arbitration server with Mirroring Controller, and 2) Execute mc_ctl switch in standby server, and 3) The total execution time to perform following processing in the 2)'s command is 60 seconds or more, and - Instance switching process - Post-switch command (*2) - Fencing command on arbitration server (*4) - Fencing command on standby server (*4)(*5) 4) Execution of the fencing command on the arbitration server succeeds within fencing_command_timeout in arbitration configuration file, and (*4) 5) Execution of the fencing command on the standby server succeeds within fencing_command_timeout in server configuration file, and (*4)(*5) 6) Instance switching process is succeeded. [Requirements to reproduce 1 of Issue 7] 1) Using Mirroring Controller, and 2) Execute mc_ctl detach in primary server, and 3) The total execution time to perform following processing in the 2)'s command is 60 seconds or more, and - Pre-detach command on primary server (*2) - Fencing command on primary server (*5) 4) Execution of the fencing command on the primary server succeeds within fencing_command_timeout in server configuration file. (*5) [Requirements to reproduce 2 of Issue 7] 1) Using the arbitration server with Mirroring Controller, and 2) Execute mc_ctl detach in primary server, and 3) The total execution time to perform following processing in the 2)'s command is 60 seconds or more, and - Pre-detach command on primary server (*2) - Fencing command on arbitration server - Fencing command on primary server (*5) 4) Execution of the fencing command on the arbitration server succeeds within fencing_command_timeout in arbitration configuration file, and 5) Execution of the fencing command on the standby server succeeds within fencing_command_timeout in server configuration file. (*5) [Requirements to reproduce Issue 8] 1) Using Mirroring Controller, and 2) Execute mc_ctl stop, and 3) While executing the mc_ctl stop command, it takes 60 seconds to stop the instance and it succeeds. (*1) "Instance switching process" includes various internal processing such as executing SELECT statements on the instance, starting or stopping instance and promoting instance. (*2) If the target user command is not set in the server configuration file, it is treated that the command has finished in 0 seconds. (*3) This is applicable only when on is specified for shutdown_detached_synchronous_standby in the server configuration file. (*4) This is applicable only when the --force option is specified for mc_ctl switch. (*5) If the target user command is not set in the server configuration file, it is treated that the command has finished in 0 seconds. Moreover, following message is output when Mirroring Controller detects an error in Issue 1, Issue 3 and Issue 5. ERROR: unexpected error occurred: class java.lang.RuntimeException: java.net.SocketTimeoutException #012#011at com.fujitsu.fepmc.net.rpc.RPCSocketProcessor.run (Unknown Source)#012#011at java.util.concurrent.ThreadPoolExecutor. runWorker(ThreadPoolExecutor.java:1149)#012#011at java.util. concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) #012#011at java.lang.Thread.run(Thread.java:748)#012 (MCR00030) - Action Fix the internal socket communication timeout period for Mirroring Controller process and Mirroring Controller arbitration process. - Compatibility Information - Summary Mirroring Controller's switchover and disconnection may fail when the execution time of fencing command or state transition command exceeds the specified timeout value instead of the fixed value of 60 seconds. - Environment It may occur under the following conditions. 1) Perform switchover or disconnection by Mirroring Controller, and 2) Specify the value of 60 or more for following parameters in server configuration file or arbitration configuration file, and - fencing_command_timeout, or - status_change_command_timeout. 3) The Mirroring Controller process or the Mirroring Controller arbitration process executes the following user commands corresponding to the setting of 2), and - Fencing command, or - State transition command. 4) The processing of 3) takes more than 60 seconds. - Products combination of this compatibility problem Mirroring Controller is used and the timeout value for fencing command or state transition command is set to 60 seconds or more, and it takes more than 60 seconds to execute these user commands. - Reason of conflictions Fix the internal socket communication timeout period for Mirroring Controller process and Mirroring Controller arbitration process. - Impacts Mirroring Controller's switchover and disconnection may fail according to not the fixed value of 60 seconds but timeout parameters. - Functional items (Summary, Before/After of migration) Changes the behavior when the conditions are met. [Before] Switchover and disconnection fail when the execution time elapses 60 seconds. [After] Switchover and disconnection fail when the execution time elapses the value specified in the timeout parameter. - Preventive Method To make fencing command or state transition command to fail when the execution time elapses 60 seconds, set the timeout value for these user commands to 60 seconds in the server configuration file or arbitration configuration file. - Back out method of the functions None. - User action It is the same as the Preventive Method. ------------------------------------------------------------------------------- [List of fixed files] Files replaced by the patch: $INS_DIR $INS_DIR/bin $INS_DIR/bin/mc_arb $INS_DIR/bin/mc_arb_std $INS_DIR/bin/mc_arbiter $INS_DIR/bin/mc_update_jre_env $INS_DIR/bin/pgx_fjqssinf $INS_DIR/doc $INS_DIR/doc/Licence $INS_DIR/doc/Licence/ConvertUTF.txt $INS_DIR/doc/Licence/Jackson-databind.txt $INS_DIR/doc/Licence/Kerberos-5.txt $INS_DIR/doc/Licence/Marionette.js.txt $INS_DIR/doc/Licence/OSSP-uuid.txt $INS_DIR/doc/Licence/OSS_List.pdf $INS_DIR/doc/Licence/OpenLDAP.txt $INS_DIR/doc/Licence/OpenSSL.txt $INS_DIR/doc/Licence/Pgpool-II.txt $INS_DIR/doc/Licence/PostgreSQL-JDBC-driver.txt $INS_DIR/doc/Licence/PostgreSQL.txt $INS_DIR/doc/Licence/angular-block-ui.txt $INS_DIR/doc/Licence/angular-spinner.txt $INS_DIR/doc/Licence/angular-translate.txt $INS_DIR/doc/Licence/angular-visjs.txt $INS_DIR/doc/Licence/angular.js.txt $INS_DIR/doc/Licence/aopalliance.txt $INS_DIR/doc/Licence/apache-commons-codec.txt $INS_DIR/doc/Licence/apache-commons-configuration.txt $INS_DIR/doc/Licence/apache-commons-io.txt $INS_DIR/doc/Licence/apache-commons-lang.txt $INS_DIR/doc/Licence/apache-commons-logging.txt $INS_DIR/doc/Licence/apache-commons-pool.txt $INS_DIR/doc/Licence/apache-dbcp.txt $INS_DIR/doc/Licence/apache-derby.txt $INS_DIR/doc/Licence/apache-log4j.txt $INS_DIR/doc/Licence/apache-tomcat.txt $INS_DIR/doc/Licence/backbone.js.txt $INS_DIR/doc/Licence/ecj.txt $INS_DIR/doc/Licence/jackson-annotations.txt $INS_DIR/doc/Licence/jackson-core.txt $INS_DIR/doc/Licence/javax-inject.txt $INS_DIR/doc/Licence/jcl-over-slf4j.txt $INS_DIR/doc/Licence/jquery-html5storage.txt $INS_DIR/doc/Licence/jquery-ui.txt $INS_DIR/doc/Licence/jquery.txt $INS_DIR/doc/Licence/json2.txt $INS_DIR/doc/Licence/jstl.txt $INS_DIR/doc/Licence/libedit.txt $INS_DIR/doc/Licence/libevent.txt $INS_DIR/doc/Licence/libiconv.txt $INS_DIR/doc/Licence/libxml2.txt $INS_DIR/doc/Licence/libxslt.txt $INS_DIR/doc/Licence/lombok.txt $INS_DIR/doc/Licence/moment.js.txt $INS_DIR/doc/Licence/numeral-js.txt $INS_DIR/doc/Licence/oracle_fdw.txt $INS_DIR/doc/Licence/orafce.txt $INS_DIR/doc/Licence/pgBadger.txt $INS_DIR/doc/Licence/pg_bigm.txt $INS_DIR/doc/Licence/pg_dbms_stats.txt $INS_DIR/doc/Licence/pg_hint_plan.txt $INS_DIR/doc/Licence/pg_repack.txt $INS_DIR/doc/Licence/pg_rman.txt $INS_DIR/doc/Licence/pg_statsinfo.txt $INS_DIR/doc/Licence/pgaudit.txt $INS_DIR/doc/Licence/psqlODBC.txt $INS_DIR/doc/Licence/slf4j.txt $INS_DIR/doc/Licence/spin.js.txt $INS_DIR/doc/Licence/spring-framework.txt $INS_DIR/doc/Licence/spring-security-web.txt $INS_DIR/doc/Licence/underscore.js.txt $INS_DIR/doc/Licence/vis.js.txt $INS_DIR/doc/Licence/zlib.txt $INS_DIR/etc $INS_DIR/etc/product.inf $INS_DIR/lib $INS_DIR/lib/libChangeCorePathArbiterNative.so $INS_DIR/lib/libCustomSysloggerArbiterNative.so $INS_DIR/lib/mc_common.jar $INS_DIR/lib/mcarb_core.jar $INS_DIR/share $INS_DIR/share/locale $INS_DIR/share/locale/en $INS_DIR/share/locale/en/LC_MESSAGES $INS_DIR/share/locale/en/LC_MESSAGES/mc_arb.mo $INS_DIR/share/locale/ja $INS_DIR/share/locale/ja/LC_MESSAGES $INS_DIR/share/locale/ja/LC_MESSAGES/mc_arb.mo $INS_DIR/share/man $INS_DIR/share/man/ja $INS_DIR/share/man/ja/man1 $INS_DIR/share/man/ja/man1/mc_arb.1 $INS_DIR/share/man/man1 $INS_DIR/share/man/man1/mc_arb.1 $INS_DIR/share/mcarb_arbitration.conf.sample $INS_DIR/share/mcarb_execute_fencing.sh.sample $INS_DIR/share/mcarb_network.conf.sample $INS_DIR/share/mcarboi.service.sample $INS_DIR/share/rc_mcarboi.sample -------------------------------------------------------------------------------