Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-127445

gvfs-trash monitoring mount points changes caused a spike in CPU usage

Linking RHIVOS CVEs to...Migration: Automation ...RHELPRIO AssignedTeam ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • None
    • Low
    • rhel-jotnar
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • None

      What were you trying to do that didn't work?

      In a GUI environment with multiple logged-in users, when a new user logs in or mount points change, the CPU usage of gvfsd-trash process for every logged-in user session increases simultaneously. This causes a spike in CPU usage that slows down the entire system.

      What is the impact of this issue to you?

      In a system which has hundreds of users and the users' home directories are in a NFS area mounted by autofs, the frequently login/logout or mount points changes will cause the whole system slows down.

       

      Please provide the package NVR for which the bug is seen:

      gvfs-1.36.2-18.el8_10.x86_64

      How reproducible is this bug?:

      Always.

      Steps to reproduce

      1. Fresh install 2 RHEL 8.10 systems A and B. Setup A as an NFS client and VNC server. Setup B as an NFS server.
      2. Creates 5 user accounts(user001-user005) as vnc users and 500 user accounts(U0001-U0500) for testing the autofs mount.
      3. Setup the share directories.
      ## system B
      # for i in {001..005}; do mkdir -p /exports/home/user$i ; done 
      # for i in {001..005}; do chown user$i:user$i /exports/home/user$i; done 
      # for i in {001..005}; do cp -r /home/user$i/* /exports/home/user$i; done 
      
      # for i in {0001..0500}; do mkdir -p /exports/home/U$i ; done 
      # for i in {0001..0500}; do chown U$i:U$i /exports/home/U$i; done 
      
      # cat /etc/exports
      /exports/home A_IP(rw,sync,no_root_squash,no_subtree_check) systemctl enable nfs-server systemctl start nfs-server exportfs -r
      
      ## system A
      # cat /etc/auto.master | grep -v ^#
      /misc    /etc/auto.misc
      /net    -hosts
      +dir:/etc/auto.master.d
      +auto.master
      /home    /etc/auto.home    --timeout=300
      
      # cat /etc/auto.home 
      * fstype=nfs4,rw,soft,intr,rsize=8192,wsize=8192 B_IP:/exports/home/&
      

      4. From a VNC client, login to the GUI of system A  with user002-005 and make sure the Trash is opened on each session.

      # ps -aux | grep trash
      user002     5210  0.0  0.2 600424  4924 ?        Sl   12:13   0:03 /usr/libexec/gvfsd-trash --spawner :1.18 /org/gtk/gvfs/exec_spaw/0
      user003    26722  0.0  0.1 600404  3068 ?        Sl   18:25   0:02 /usr/libexec/gvfsd-trash --spawner :1.19 /org/gtk/gvfs/exec_spaw/0
      user004    26933  0.0  0.1 600408  3052 ?        Sl   18:26   0:02 /usr/libexec/gvfsd-trash --spawner :1.17 /org/gtk/gvfs/exec_spaw/0
      user005    27173  0.0  0.1 600408  3080 ?        Sl   18:27   0:02 /usr/libexec/gvfsd-trash --spawner :1.17 /org/gtk/gvfs/exec_spaw/0

      5. On system A, test the CPU usage when the mount points frequently changes. 

      # top -b > top_testMount.out  
      
      # mount | grep home | wc -l
      5
      
      # cat /proc/5210/mountinfo | grep home | wc -l
      5 
      
      # for i in {0001..0500}; do ls /home/U${i} > null ; done 
      
      # mount | grep home | wc -l
      505 
      
      # grep trash top_testMount.out 
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 S   0.0   0.3   0:03.17 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 S   0.0   0.2   0:02.42 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 S   0.0   0.2   0:02.40 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 S   0.0   0.2   0:02.43 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 D   3.0   0.2   0:02.51 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 t   2.7   0.3   0:03.25 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 R   2.7   0.2   0:02.48 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 D   2.7   0.2   0:02.51 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 D   4.3   0.2   0:02.64 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 t   4.0   0.3   0:03.37 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 D   4.0   0.2   0:02.63 gvfsd-trash
        26933 user004   20   0  600408   3052   1080 D   4.0   0.2   0:02.60 gvfsd-trash
        26933 user004   20   0  600408   3044   1080 D   5.0   0.2   0:02.75 gvfsd-trash
         5210 user002   20   0  600424   4924   2940 D   4.7   0.3   0:03.51 gvfsd-trash
        27173 user005   20   0  600408   3080   1136 D   4.7   0.2   0:02.78 gvfsd-trash
        26722 user003   20   0  600404   3068   1136 D   4.3   0.2   0:02.76 gvfsd-trash
        26722 user003   20   0  600668   3320   1136 D   5.6   0.2   0:02.93 gvfsd-trash
        27173 user005   20   0  600680   3336   1136 D   5.6   0.2   0:02.95 gvfsd-trash
         5210 user002   20   0  600644   5264   3004 D   5.3   0.3   0:03.67 gvfsd-trash
        26933 user004   20   0  600656   3276   1080 D   5.3   0.2   0:02.91 gvfsd-trash
         5210 user002   20   0  600932   5648   3004 t   5.3   0.3   0:03.83 gvfsd-trash
        27173 user005   20   0  600944   3636   1136 D   5.3   0.2   0:03.11 gvfsd-trash
        26722 user003   20   0  600944   3628   1136 D   5.0   0.2   0:03.08 gvfsd-trash
        26933 user004   20   0  600936   3588   1080 D   4.7   0.2   0:03.05 gvfsd-trash
         5210 user002   20   0  601152   5864   3004 t   5.3   0.3   0:03.99 gvfsd-trash
        26933 user004   20   0  601156   3804   1080 D   5.3   0.2   0:03.21 gvfsd-trash
        26722 user003   20   0  601156   3844   1136 D   5.0   0.2   0:03.23 gvfsd-trash
        27173 user005   20   0  601164   3856   1136 D   4.7   0.2   0:03.25 gvfsd-trash
        27173 user005   20   0  601360   4056   1136 D   6.0   0.2   0:03.43 gvfsd-trash
         5210 user002   20   0  601548   6064   3004 R   5.6   0.3   0:04.16 gvfsd-trash
        26722 user003   20   0  601360   4048   1136 D   5.6   0.2   0:03.40 gvfsd-trash
        26933 user004   20   0  601352   4008   1080 D   5.6   0.2   0:03.38 gvfsd-trash
        26722 user003   20   0  601548   4108   1136 D   5.3   0.2   0:03.56 gvfsd-trash
         5210 user002   20   0  601520   6240   3004 t   5.0   0.3   0:04.31 gvfsd-trash
        26933 user004   20   0  601532   4184   1080 D   5.0   0.2   0:03.53 gvfsd-trash
        27173 user005   20   0  601564   4132   1136 D   4.7   0.2   0:03.57 gvfsd-trash
         5210 user002   20   0  601768   6360   3004 S   5.6   0.3   0:04.48 gvfsd-trash
        26722 user003   20   0  601808   4368   1136 S   5.6   0.2   0:03.73 gvfsd-trash
        26933 user004   20   0  601732   4260   1080 S   5.6   0.2   0:03.70 gvfsd-trash
        27173 user005   20   0  601824   4392   1136 S   5.6   0.2   0:03.74 gvfsd-trash
         5210 user002   20   0  601896   6488   3004 S   6.3   0.4   0:04.67 gvfsd-trash
        26722 user003   20   0  601928   4488   1136 S   6.0   0.2   0:03.91 gvfsd-trash
        26933 user004   20   0  601976   4504   1080 S   6.0   0.2   0:03.88 gvfsd-trash
        27173 user005   20   0  601948   4516   1136 S   6.0   0.2   0:03.92 gvfsd-trash
        27173 user005   20   0  602172   4740   1136 D   7.3   0.3   0:04.14 gvfsd-trash
         5210 user002   20   0  602144   6736   3004 D   7.0   0.4   0:04.88 gvfsd-trash
        26933 user004   20   0  602096   4624   1080 D   6.6   0.3   0:04.08 gvfsd-trash
        26722 user003   20   0  602164   4724   1136 D   6.3   0.3   0:04.10 gvfsd-trash
         5210 user002   20   0  602368   6960   3004 D   6.6   0.4   0:05.08 gvfsd-trash
        26722 user003   20   0  602392   4952   1136 D   6.6   0.3   0:04.30 gvfsd-trash
        26933 user004   20   0  602348   4876   1080 D   6.6   0.3   0:04.28 gvfsd-trash
        27173 user005   20   0  602416   4984   1136 D   6.0   0.3   0:04.32 gvfsd-trash
        27173 user005   20   0  602416   4984   1136 S   2.0   0.3   0:04.38 gvfsd-trash
         5210 user002   20   0  602480   7072   3004 S   1.7   0.4   0:05.13 gvfsd-trash
        26722 user003   20   0  602500   5060   1136 S   1.7   0.3   0:04.35 gvfsd-trash
        26933 user004   20   0  602460   4988   1080 S   1.7   0.3   0:04.33 gvfsd-trash   

      Expected results

      The whole system won't slow down. The CPU usage of gvfsd-trash won't increase significantly.

      Actual results

      The system slowes down when a new user logins to the GUI or mount points change.

              jotnar-project Jötnar Project
              rhn-support-lilhuang Lili Huang
              Qi Guo
              Ondrej Holy Ondrej Holy
              Jötnar Project Jötnar Project
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: