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 5 years ago
- Status changed from New to In Progress
- Assignee set to Rishabh Dave
Updated by Rishabh Dave about 5 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 5 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 almost 5 years ago
- Status changed from In Progress to New