Bug 1263348
Summary: | tmpfile leak in mysql resource agent | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Frank Enderle <frank.enderle> | |
Component: | resource-agents | Assignee: | Oyvind Albrigtsen <oalbrigt> | |
Status: | CLOSED ERRATA | QA Contact: | cluster-qe <cluster-qe> | |
Severity: | medium | Docs Contact: | ||
Priority: | medium | |||
Version: | 7.1 | CC: | abeekhof, agk, cfeist, cluster-maint, frank.enderle, mnovacek, oalbrigt, rmccabe | |
Target Milestone: | rc | |||
Target Release: | --- | |||
Hardware: | Unspecified | |||
OS: | Unspecified | |||
Whiteboard: | ||||
Fixed In Version: | resource-agents-3.9.5-61.el7 | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 1292054 (view as bug list) | Environment: | ||
Last Closed: | 2016-11-03 23:58:32 UTC | Type: | Bug | |
Regression: | --- | Mount Type: | --- | |
Documentation: | --- | CRM: | ||
Verified Versions: | Category: | --- | ||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
Cloudforms Team: | --- | Target Upstream Version: | ||
Embargoed: | ||||
Bug Depends On: | ||||
Bug Blocks: | 1292054 |
Description
Frank Enderle
2015-09-15 15:28:54 UTC
Looking at the code, there are tons of conditions inside the agent that can lead to file temporary file leaks beside the normal runtime monitoring issue. I have never used mysql is master/slave mode (where this code path is leaking). Can you please share your configuration so i can set it up easily to verify any fix? Thanks I'm currently unable to produce a test case. I will try to find the time in the next week, so please do not autoclose this bug. OCF_CHECK_LEVEL=10 is required to reproduce the issue: # pcs resource op add MDB monitor interval=15s OCF_CHECK_LEVEL=10 I tested and verified that the following patch solves the issue: https://github.com/ClusterLabs/resource-agents/pull/722 Setup: # pcs resource create MySQL mysql # pcs resource master MySQL # pcs resource op add MySQL monitor interval=15s OCF_CHECK_LEVEL=10 Run on the slave node. Before: # rpm -q resource-agents resource-agents-3.9.5-54.el7_2.6.x86_64 # ls /var/run/resource-agents/check_slave.* /var/run/resource-agents/check_slave.MySQL.uCeh9f Wait at least 15 seconds. # ls /var/run/resource-agents/check_slave.* /var/run/resource-agents/check_slave.MySQL.uCeh9f /var/run/resource-agents/check_slave.MySQL.uxRvQo After: # rpm -q resource-agents resource-agents-3.9.5-61.el7.x86_64 # ls /var/run/resource-agents/check_slave.* /var/run/resource-agents/check_slave.MySQL.uCeh9f /var/run/resource-agents/check_slave.MySQL.uxRvQo Wait at least 15 seconds. # ls /var/run/resource-agents/check_slave.* /var/run/resource-agents/check_slave.MySQL.uCeh9f /var/run/resource-agents/check_slave.MySQL.uxRvQo The same number of files (from before the patch still exist, but will be removed on reboot). I have verified that there are no more leftover files on slave after the patch in resource-agents-3.9.5-81.el7.x86_64 --- common setup * setup cluster (1) * setup mysql resource as master/slave clone and verify that mysql is running (2) before the patch (resource-agents-3.9.5-54.el7.x86_64) ====================================================== > on slave virt-022, there are a lot of leftover files [root@virt-022 ~]# find /var/run/resource-agents /var/run/resource-agents /var/run/resource-agents/check_slave.mysql.FtU5zA /var/run/resource-agents/check_slave.mysql.vIqLEy /var/run/resource-agents/check_slave.mysql.rGDFFZ /var/run/resource-agents/check_slave.mysql.8X9GpU /var/run/resource-agents/check_slave.mysql.Nns5S0 /var/run/resource-agents/check_slave.mysql.jRlGo9 /var/run/resource-agents/check_slave.mysql.pHXcvw /var/run/resource-agents/check_slave.mysql.YM8ofW /var/run/resource-agents/check_slave.mysql.ej6his /var/run/resource-agents/check_slave.mysql.BFzDwJ /var/run/resource-agents/check_slave.mysql.lvI3t5 /var/run/resource-agents/check_slave.mysql.iQr2Xt /var/run/resource-agents/check_slave.mysql.4unyu5 /var/run/resource-agents/threads.mysql.XGarNE /var/run/resource-agents/master_status.mysql /var/run/resource-agents/cmirrord-clvmd.pid /var/run/resource-agents/clvmd-clvmd.pid after the patch (resource-agents-3.9.5-81.el7.x86_64) ===================================================== > when mysql resource is active on virt-005, virt-022 is slave: [root@virt-022 ~]# find /var/run/resource-agents /var/run/resource-agents /var/run/resource-agents/cmirrord-clvmd.pid /var/run/resource-agents/clvmd-clvmd.pid ----- >> (1) [root@virt-005 ~]# pcs status Cluster name: STSRHTS2803 Stack: corosync Current DC: virt-021 (version 1.1.15-10.el7-e174ec8) - partition with quorum Last updated: Fri Sep 2 15:40:09 2016 Last change: Fri Sep 2 15:34:26 2016 by root via cibadmin on virt-005 4 nodes and 14 resources configured Online: [ virt-004 virt-005 virt-021 virt-022 ] Full list of resources: fence-virt-004 (stonith:fence_xvm): Started virt-004 fence-virt-005 (stonith:fence_xvm): Started virt-005 fence-virt-021 (stonith:fence_xvm): Started virt-021 fence-virt-022 (stonith:fence_xvm): Started virt-022 Clone Set: dlm-clone [dlm] Started: [ virt-004 virt-005 virt-021 virt-022 ] Clone Set: clvmd-clone [clvmd] Started: [ virt-004 virt-005 virt-021 virt-022 ] Master/Slave Set: mysql-clone [mysql] Masters: [ virt-005 ] Slaves: [ virt-022 ] Failed Actions: Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled >> (2) [root@virt-005 ~]# pcs resource show --full Clone: dlm-clone Meta Attrs: interleave=true ordered=true Resource: dlm (class=ocf provider=pacemaker type=controld) Operations: start interval=0s timeout=90 (dlm-start-interval-0s) stop interval=0s timeout=100 (dlm-stop-interval-0s) monitor interval=30s on-fail=fence (dlm-monitor-interval-30s) Clone: clvmd-clone Meta Attrs: interleave=true ordered=true Resource: clvmd (class=ocf provider=heartbeat type=clvm) Attributes: with_cmirrord=1 Operations: start interval=0s timeout=90 (clvmd-start-interval-0s) stop interval=0s timeout=90 (clvmd-stop-interval-0s) monitor interval=30s on-fail=fence (clvmd-monitor-interval-30s) Master: mysql-clone Meta Attrs: master-node-max=1 clone-max=2 notify=true master-max=1 clone-node-max=1 Resource: mysql (class=ocf provider=heartbeat type=mysql) Operations: start interval=0s timeout=240 (mysql-start-interval-0s) stop interval=0s timeout=120 (mysql-stop-interval-0s) promote interval=0s timeout=120 (mysql-promote-interval-0s) demote interval=0s timeout=120 (mysql-demote-interval-0s) monitor interval=30s (mysql-monitor-interval-30s) monitor interval=15s OCF_CHECK_LEVEL=10 (mysql-monitor-interval-15s) Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2016-2174.html |