Bug #49644
openvstart_runner: run_ceph_w() doesn't work with shell=True
0%
Description
Setting shell
to True
leads to a crash when tasks.mgr.test_module_selftest.TestModuleSelftest.test_selftest_cluster_log
is run on "ceph API" GitHub CI job. The crash happens when self.subproc.communicate()
is run in self.watcher_process.finished()
(self.watcher_process
is an instance of LocalRemoteProcess
) in ContextManager.__exit__()
.
See ceph API job on this PR (https://github.com/ceph/ceph/pull/38471) to see the crash. The console output also contains extra debug messages that shows that crashed happened on call to self.proc.communicate()
in LocalRemoteProcess.finished()
.
Ideally, the run_ceph_w()
should work even when shell
is set to True
.
Also see this PR - https://github.com/ceph/ceph/pull/38443. Especially this discussion on it might be helpful - https://github.com/ceph/ceph/pull/38443#discussion_r537673068.
Why do we need to set shell
to True
?
----------------------------------------
Currently, teuthology.orchestra.run.run()
executes commands with shell
set to True
while vstart_runner.LocalRemoteProcess.run
runs with shell@s set to @False
. This inconsistency leads to incompatibility and bugs and makes code in teuthology.remote
non-reusable.
Updated by Patrick Donnelly about 3 years ago
- Status changed from New to In Progress
- Assignee set to Rishabh Dave
Updated by Rishabh Dave about 3 years ago
This PR exposes this issue and adds a workaround for it - https://github.com/ceph/ceph/pull/38443.
Updated by Rishabh Dave about 3 years ago
- Subject changed from qa/ceph_manager: run_ceph_w() doesn't work with shell=True to vstart_runner: run_ceph_w() doesn't work with shell=True
Updated by Rishabh Dave about 3 years ago
- Status changed from In Progress to New