[Bug]: `saltutil.runner` fail with a `getpwnam` `KeyError` when the master process runs as root
Open
Nobody has claimed this yet.
bug
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 5.6k
- Avg merge
- 2d 44m
- Merged PRs (30d)
- 80
Description
What happened?
Rendering SLS:
'...:queued.wrapper' failed: Problem running salt function in Jinja template: Failed to run 'queue.insert' as user 'Reactor': KeyError: "getpwnam(): name not found: 'Reactor'"
Setup
- Salt master running as root (euid 0).
- Salt 3006.27 (onedir).
Steps to reproduce the behaviour:
mkdir -p /etc/salt/master.d /srv/reactor /srv/salt/orch
/etc/salt/master.d/reactor.conf
reactor:
- 'repro/runas':
- /srv/reactor/orch.sls
/srv/reactor/orch.sls
run_orch:
runner.state.orchestrate:
- args:
- mods: orch.repro
/srv/salt/orch/repro.sls
{% do salt['saltutil.runner']('test.arg', ['hello']) %}
noop:
test.nop
systemctl restart salt-master
On minion fire the event:
salt-call event.send 'repro/runas'
Watch the master log. The runner call raises the KeyError shown under Actual behavior.
Type of salt install
Official rpm
Major version
3006.x
What supported OS are you seeing the problem on? Can select multiple. (If bug appears on an unsupported OS, please open a GitHub Discussion instead)
rockylinux-8
salt --versions-report output
Salt Version:
Salt: 3006.27
Python Version:
Python: 3.11.15 (main, Jun 29 2026, 22:21:49) [GCC 11.2.0]
Dependency Versions:
cffi: 2.0.0
cherrypy: 18.10.0
cryptography: 47.0.0
dateutil: 2.8.2
docker-py: Not Installed
gitdb: 4.0.12
gitpython: Not Installed
Jinja2: 3.1.6
libgit2: Not Installed
looseversion: 1.3.0
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.1.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 24.0
pycparser: 3.00
pycrypto: Not Installed
pycryptodome: 3.23.0
pygit2: Not Installed
python-gnupg: 0.5.6
PyYAML: 6.0.3
PyZMQ: 27.1.0
relenv: 0.22.16
smmap: 5.0.2
timelib: 0.3.0
Tornado: 6.5.5
ZMQ: 4.3.5
System Versions:
dist: rocky 8.10 Green Obsidian
locale: utf-8
machine: x86_64
release: 4.18.0-553.141.1.el8_10.0.1.x86_64
system: Linux
version: Rocky Linux 8.10 Green Obsidian
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with a root-running Salt master using the provided reactor, orchestration SLS, and Jinja saltutil.runner call. Trace the queue.insert and runner.state.orchestrate path when invoking test.arg as user 'Reactor'. Done means the reproduced scenario no longer raises the getpwnam KeyError and the behavior is covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, python
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100