Rclone and many zombie processes

What is the problem you are having with rclone?

I have a lot of commands being created in my project to mount a folder, about 100+ per hour. Each one creates zombie processes. Can I use the rclone setting or terminate the process correctly? Below are examples where the folders have already been unmounted. 3 sample-requests to my module.
Similar problem: rclone zombie process · Issue #50 · sapk/docker-volume-rclone · GitHub , if needed.

Output top cmd:

top - 16:33:45 up  7:54,  0 users,  load average: 0.14, 0.18, 0.19
Tasks:   8 total,   1 running,   4 sleeping,   0 stopped,   3 zombie
%Cpu(s):  3.9 us,  2.7 sy,  0.0 ni, 93.2 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
MiB Mem :   3843.0 total,    167.8 free,    882.6 used,   2792.5 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   2197.5 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                               
      1 root      20   0  290368  72204  14952 S   0.3   1.8   0:01.10 python                                                                                                                                                
     16 root      20   0       0      0      0 Z   0.0   0.0   0:00.05 rclone   <-- this                                                                                                                                            
     34 root      20   0       0      0      0 Z   0.0   0.0   0:00.05 rclone   <-- this                                                                                                                                            
     53 root      20   0       0      0      0 Z   0.0   0.0   0:00.05 rclone   <-- this                                                                                                                                            
     68 root      20   0    2416    520    452 S   0.0   0.0   0:00.00 sh                                                                                                                                                    
     75 root      20   0    2416     88      0 S   0.0   0.0   0:00.00 sh                                                                                                                                                    
     76 root      20   0    5988   3680   3252 S   0.0   0.1   0:00.00 bash                                                                                                                                                  
     77 root      20   0    8880   3656   3180 R   0.0   0.1   0:00.00 top 

rclone version:

rclone v1.59.1
- os/version: debian 11.4 (64 bit)
- os/kernel: 4.19.157 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.18.5
- go/linking: static
- go/tags: none

Which cloud storage system are you using?

S3 + minio

Commands

mount:

rclone mount --config s3.conf minio-dev:test-data/x /app/data/x --log-level DEBUG --allow-non-empty --daemon --vfs-cache-mode full --vfs-read-ahead 16K --vfs-cache-poll-interval 50ms --dir-cache-time 5m0s --poll-interval 50ms --s3-list-version 2 --s3-no-check-bucket --s3-no-head --read-only

umount:

fusermount -uz /app/data/x

The rclone config contents with secrets removed.

[s3context]
type = s3
provider = Minio
env_auth = false
access_key_id = minio_access_key
secret_access_key = minio_secret_key
endpoint = http://minio-dev:9000
region = eu-south-1

For stopping a network/fuse mount, you need to ensure all the IO on the mount point is stopped.

So the fusermount itself won't do that.

You'd need to run/write/include any dependent things on that mount point.

lsof /mountpoint will show you what's running.

In my case, I use systemd services and and I do all my requirements there. If you try to stop a mount with IO, it'll generally cause issues as it can't unmount since the mount point is locked.

The -z part is lazy unmount which hides it even more so.

       -z  lazy unmount.

which does

Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore.