Description
Setup an inotify beacon and refresh beacons. Every time beacons are refreshed inotify file handles are leaked.
Setup
dnf install salt-minion
Example beacons file
beacons:
inotify:
- disable_during_state_run: True
- coalesce: True
- files:
/etc/nginx/nginx.conf:
mask:
- delete
- modify
Steps to Reproduce the behavior
On the master server salt run:
salt <name_server> state.apply
On the slave server using lsof -
lsof | grep -E 'salt.*inotify'
Expected behavior
There must be a constant number of open
/opt/salt 1817561 root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817562 python3.1 root 46r a_inode 0,14 0 13770 inotify\n
/opt/salt 1817561 1817659 /opt/salt root 46r a_inode 0,14 0 13770 inotify\n
/opt/salt 1817561 1817660 /opt/salt root 46r a_inode 0,14 0 13770 inotify\n
/opt/salt 1817561 1817665 /opt/salt root 46r a_inode 0,14 0 13770 inotify\n
But there's more every time
/opt/salt 1817561 root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 root 48r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 root 49r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 root 50r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817562 python3.1 root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817562 python3.1 root 48r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817562 python3.1 root 49r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817659 /opt/salt root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817659 /opt/salt root 48r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817659 /opt/salt root 49r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817660 /opt/salt root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817660 /opt/salt root 48r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817660 /opt/salt root 49r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817665 /opt/salt root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817665 /opt/salt root 48r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817665 /opt/salt root 49r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817666 /opt/salt root 46r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817666 /opt/salt root 48r a_inode 0,14 0 13770 inotify
/opt/salt 1817561 1817666 /opt/salt root 49r a_inode 0,14 0 13770 inotify
Versions Report
Salt Version:
Salt: 3006.7
Python Version:
Python: 3.10.13 (main, Feb 19 2024, 03:31:20) [GCC 11.2.0]
Dependency Versions:
cffi: 1.14.6
cherrypy: 18.6.1
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 3.1.3
libgit2: Not Installed
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.19.1
pygit2: Not Installed
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.15.1
smmap: Not Installed
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4
System Versions:
dist: rocky 8.9 Green Obsidian
locale: utf-8
machine: x86_64
release: 4.18.0-372.9.1.el8.x86_64
system: Linux
version: Rocky Linux 8.9 Green Obsidian
Description
Setup an inotify beacon and refresh beacons. Every time beacons are refreshed inotify file handles are leaked.
Setup
dnf install salt-minionExample beacons file
Steps to Reproduce the behavior
On the master server salt run:
salt <name_server> state.applyOn the slave server using lsof -
lsof | grep -E 'salt.*inotify'Expected behavior
There must be a constant number of open
But there's more every time
Versions Report