]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-handler: replace fuser by /proc/net/unix
authorDimitri Savineau <dsavinea@redhat.com>
Thu, 6 Jun 2019 18:08:18 +0000 (14:08 -0400)
committerGuillaume Abrioux <gabrioux@redhat.com>
Wed, 12 Jun 2019 21:00:21 +0000 (23:00 +0200)
We're using fuser command to see if a process is using a ceph unix
socket file. But the fuser command runs through every PID present in
/proc/<PID> to see if one of them is using the file.
On a system running thousands processes, the fuser command can take
a long time to finish.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1717011

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit da9891da1e8b9a8c91077c74e54a9df8ebb7070d)

roles/ceph-handler/tasks/check_socket_non_container.yml

index 0afe3eaa807d34eadd50193af20573043cad24f9..3af998af509dd7d8f9e545848da1fa2d5c3a45fd 100644 (file)
@@ -9,7 +9,7 @@
     - inventory_hostname in groups.get(mon_group_name, [])
 
 - name: check if the ceph mon socket is in-use
-  command: fuser --silent {{ mon_socket_stat.stdout }}
+  command: grep -q {{ mon_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no
@@ -38,7 +38,7 @@
     - inventory_hostname in groups.get(osd_group_name, [])
 
 - name: check if the ceph osd socket is in-use
-  command: fuser --silent {{ osd_socket_stat.stdout }}
+  command: grep -q {{ osd_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no
@@ -67,7 +67,7 @@
     - inventory_hostname in groups.get(mds_group_name, [])
 
 - name: check if the ceph mds socket is in-use
-  command: fuser --silent {{ mds_socket_stat.stdout }}
+  command: grep -q {{ mds_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no
@@ -96,7 +96,7 @@
     - inventory_hostname in groups.get(rgw_group_name, [])
 
 - name: check if the ceph rgw socket is in-use
-  command: fuser --silent {{ rgw_socket_stat.stdout }}
+  command: grep -q {{ rgw_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no
     - inventory_hostname in groups.get(mgr_group_name, [])
 
 - name: check if the ceph mgr socket is in-use
-  command: fuser --silent {{ mgr_socket_stat.stdout }}
+  command: grep -q {{ mgr_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no
     - inventory_hostname in groups.get(rbdmirror_group_name, [])
 
 - name: check if the ceph rbd mirror socket is in-use
-  command: fuser --silent {{ rbd_mirror_socket_stat.stdout }}
+  command: grep -q {{ rbd_mirror_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no
     - inventory_hostname in groups.get(nfs_group_name, [])
 
 - name: check if the ceph nfs ganesha socket is in-use
-  command: fuser --silent {{ nfs_socket_stat.stdout }}
+  command: grep -q {{ nfs_socket_stat.stdout }} /proc/net/unix
   changed_when: false
   failed_when: false
   check_mode: no