saltstack / saltstack/salt

[BUG] interval not being respected by diskusage beacons.

Open
#65,495 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Beacon bug needs-triage
Dominant language
Python
Stars
15.7k
Forks
5.6k
Avg merge
2d 44m
Merged PRs (30d)
80

Description

Description
diskusage beacons are firing every other interval instead of the interval count.

Setup

2023-10-31 17:56:57,276 [salt.utils.schedule:32  ][TRACE   ][218313] ==== evaluating schedule now None =====
2023-10-31 17:56:58,275 [salt.beacons     :32  ][TRACE   ][218313] Beacon processing: diskusage
2023-10-31 17:56:58,275 [salt.beacons     :32  ][TRACE   ][218313] Processing interval 120 for beacon mod diskusage
2023-10-31 17:56:58,275 [salt.beacons     :32  ][TRACE   ][218313] Processing interval in map
2023-10-31 17:56:58,276 [salt.beacons     :32  ][TRACE   ][218313] Interval counter: 2
2023-10-31 17:56:58,277 [salt.utils.event :315 ][DEBUG   ][218313] SaltEvent PUB socket URI: /var/run/salt/minion/minion_event_a54894fdec_pub.ipc
2023-10-31 17:56:58,277 [salt.utils.event :316 ][DEBUG   ][218313] SaltEvent PULL socket URI: /var/run/salt/minion/minion_event_a54894fdec_pull.ipc
2023-10-31 17:56:58,278 [salt.transport.ipc:32  ][TRACE   ][218313] IPCClient: Connecting to socket: /var/run/salt/minion/minion_event_a54894fdec_pull.ipc
2023-10-31 17:56:58,278 [salt.utils.event :823 ][DEBUG   ][218313] Sending event: tag = __beacons_return; data = {'beacons': [{'tag': 'salt/beacon/salt00/diskusage/', 'data': {'diskusage': 18.1, 'mount': '/boot', 'random_label': 'zjpqc', 'id': 'salt00'}, 'beacon_name': 'diskusage'}], '_stamp': '2023-10-31T17:56:58.278662'}
2023-10-31 17:56:58,279 [salt.transport.ipc:372 ][DEBUG   ][218313] Closing IPCMessageClient instance

as can be seen in this log the interval counter is 2 but the beacon still fired.

Please be as specific as possible and give set-up details.

  • on-prem machine
  • VM (Virtualbox, KVM, etc. please specify)
  • VM running on a cloud service, please be explicit and add details
  • container (Kubernetes, Docker, containerd, etc. please specify)
  • or a combination, please be explicit
  • jails if it is FreeBSD
  • classic packaging
  • onedir packaging
  • used bootstrap to install

Steps to Reproduce the behavior
setup diskusage beacon with an interval

Expected behavior
the interval is respected.

Versions Report

salt --versions-report (Provided by running salt --versions-report. Please also mention any differences in master/minion versions.)
Salt Version:
          Salt: 3006.4

Python Version:
        Python: 3.10.13 (main, Oct  4 2023, 21:54:22) [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.2
       libgit2: 1.7.1
  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.9.8
        pygit2: 1.13.1
  python-gnupg: 0.4.8
        PyYAML: 6.0.1
         PyZMQ: 23.2.0
        relenv: 0.13.12
         smmap: Not Installed
       timelib: 0.2.4
       Tornado: 4.5.3
           ZMQ: 4.3.4

System Versions:
          dist: ubuntu 22.04.3 jammy
        locale: utf-8
       machine: x86_64
       release: 5.15.0-87-generic
        system: Linux
       version: Ubuntu 22.04.3 jammy

Additional context
Add any other context about the problem here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the diskusage beacon with an interval and inspect the salt.beacons processing logs, especially the interval counter and emitted events. Trace the interval handling from beacon processing to the diskusage beacon, then add or update a regression test if the relevant test location is identified. Done means the beacon fires according to its configured interval rather than every other interval.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.