Bug 271367 - sysutils/py-salt: workaround a hanging minion bug
Summary: sysutils/py-salt: workaround a hanging minion bug
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Kirill Ponomarev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-05-11 18:11 UTC by Kyle Evans
Modified: 2023-05-16 11:56 UTC (History)
4 users (show)

See Also:
bugzilla: maintainer-feedback? (krion)


Attachments
git(1) diff against the ports tree (3.35 KB, patch)
2023-05-11 18:11 UTC, Kyle Evans
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle Evans freebsd_committer freebsd_triage 2023-05-11 18:11:21 UTC
Created attachment 242124 [details]
git(1) diff against the ports tree

From the commit:

```
    sysutils/py-salt: workaround a hanging minion issue
    
    From the patch description:
    
    --
    Workaround for https://github.com/saltstack/salt/issues/64074
    
    As of salt v3005, it's possible for a minion process to get
    irrecoverably wedged due to some restructuring in IPC.  Namely, payloads
    that are to be reported back to the master are written over a UNIX
    socket by the very same thread that is expected to drain the socket's
    receive buffer.
    
    Smaller payloads are fine, but anything that exceeds FreeBSD's default
    receive buffer size (8KB) results in the process hanging in socket write
    for some buffer space that will never come.  The most obvious way to
    identify a hung minion is a lingering zombie child, but it will more
    generally stop responding to salt-master.
    --
    
    The workaround is to simply bump the receive buffer size so that the
    vast majority of payloads won't trigger it.  This code likely requires
    some restructuring upstream to avoid writing to a pipe that the same
    thread is responsible for draining.
    
    Submitted by:   Johan Söllvander <jsollvander_axcient.com>
```

The patch was written by Axcient, I've only added a general description atop the patch. Attached patch is in a format accepted by `git am`.
Comment 1 Alan Somers freebsd_committer freebsd_triage 2023-05-11 18:55:46 UTC
LGTM, but you should probably s/_/@/ in the commit message.
Comment 2 Kyle Evans freebsd_committer freebsd_triage 2023-05-11 19:13:55 UTC
(In reply to Alan Somers from comment #1)

I've been yelled at both for obfuscating e-mail addresses in commit messages and not obfuscating e-mail addresses in commit messages... thinking about it, though, we wouldn't obfuscate it I set him to --author (which I didn't, in this case, so that he wouldn't be blamed for inaccuracies in the wording I added around it), so perhaps de-obfuscation is just the way to go.
Comment 3 commit-hook freebsd_committer freebsd_triage 2023-05-16 11:56:37 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0d7e53d13126b21df43ab7dfd726844feaff58ac

commit 0d7e53d13126b21df43ab7dfd726844feaff58ac
Author:     Kirill Ponomarev <krion@FreeBSD.org>
AuthorDate: 2023-05-16 11:53:29 +0000
Commit:     Kirill Ponomarev <krion@FreeBSD.org>
CommitDate: 2023-05-16 11:53:29 +0000

    sysutils/py-salt: Increase receive buffer size to prevent a hanging minion

    PR:             271367
    Reported by:    Johan Söllvander <jsollvander_axcient_dot_com>, kevans

 sysutils/py-salt/Makefile                                      |  2 +-
 .../py-salt/files/patch-salt_ext_tornado_iostream.py (new)     | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)
Comment 4 commit-hook freebsd_committer freebsd_triage 2023-05-16 11:56:38 UTC
A commit in branch 2023Q2 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=22e3c4c9124f0d2759d2e7b8358efdf128fa887e

commit 22e3c4c9124f0d2759d2e7b8358efdf128fa887e
Author:     Kirill Ponomarev <krion@FreeBSD.org>
AuthorDate: 2023-05-16 11:53:29 +0000
Commit:     Kirill Ponomarev <krion@FreeBSD.org>
CommitDate: 2023-05-16 11:56:01 +0000

    sysutils/py-salt: Increase receive buffer size to prevent a hanging minion

    PR:             271367
    Reported by:    Johan Söllvander <jsollvander_axcient_dot_com>, kevans

    (cherry picked from commit 0d7e53d13126b21df43ab7dfd726844feaff58ac)

 sysutils/py-salt/Makefile                                      |  2 +-
 .../py-salt/files/patch-salt_ext_tornado_iostream.py (new)     | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)