Project

General

Profile

Actions

Bug #47849

closed

qa/vstart_runner: LocalRemote.run can't take multiple commands

Added by Rishabh Dave over 3 years ago. Updated almost 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
qa-suite
Labels (FS):
qa
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

The issue is caused by this commit - https://github.com/ceph/ceph/pull/36457/commits/a177b470aa48a84e5346b310efa4fd626025dbfa.

2020-10-13 19:12:20,559.559 INFO:__main__:ERROR: test_cd_with_args (tasks.cephfs.test_cephfs_shell.TestCD)
2020-10-13 19:12:20,559.559 INFO:__main__:Test that when cd is issued with an argument, CWD is changed
2020-10-13 19:12:20,559.559 INFO:__main__:----------------------------------------------------------------------
2020-10-13 19:12:20,559.559 INFO:__main__:Traceback (most recent call last):
2020-10-13 19:12:20,559.559 INFO:__main__:  File "/home/rishabh/repos/ceph/test2/qa/tasks/cephfs/test_cephfs_shell.py", line 42, in setUp
2020-10-13 19:12:20,559.559 INFO:__main__:    self.mount_a.client_remote.write_file(confpath, conf_contents, mode='777')
2020-10-13 19:12:20,560.560 INFO:__main__:  File "../qa/tasks/vstart_runner.py", line 339, in write_file
2020-10-13 19:12:20,560.560 INFO:__main__:    self.run(args=args, stdin=data, omit_sudo=omit_sudo)
2020-10-13 19:12:20,560.560 INFO:__main__:  File "../qa/tasks/vstart_runner.py", line 394, in run
2020-10-13 19:12:20,560.560 INFO:__main__:    return self._do_run(**kwargs)
2020-10-13 19:12:20,560.560 INFO:__main__:  File "../qa/tasks/vstart_runner.py", line 462, in _do_run
2020-10-13 19:12:20,560.560 INFO:__main__:    proc.wait()
2020-10-13 19:12:20,560.560 INFO:__main__:  File "../qa/tasks/vstart_runner.py", line 208, in wait
2020-10-13 19:12:20,560.560 INFO:__main__:    raise CommandFailedError(self.args, self.exitstatus)
2020-10-13 19:12:20,560.560 INFO:__main__:teuthology.exceptions.CommandFailedError: Command failed with status 1: ['dd', 'of=/tmp/tmp.wLwbpAP9uq', 'chmod', '777', '/tmp/tmp.wLwbpAP9uq']
2020-10-13 19:12:20,560.560 INFO:__main__:

The issue is caused by following lines in vstart_runner.LocalRemote.write_file -

      if mode:
            chmod = 'sudo chmod' if sudo else 'chmod'
            args += '\n' + chmod + ' ' + mode + ' ' + path
        if owner:
            chown = 'sudo chown' if sudo else 'chown'
            args += '\n' + chown + ' ' + owner + ' ' + path
        omit_sudo = False if sudo else True
        self.run(args=args, stdin=data, omit_sudo=omit_sudo)

See: https://github.com/ceph/ceph/pull/36457/commits/a177b470aa48a84e5346b310efa4fd626025dbfa#diff-c0b3c977c8b56ffb318d67c2f39c109d3a097714adff0f7870217cabe79e2486R331-R339

The issue can be reproduced by applying following patch -

$ git diff
diff --git a/qa/tasks/cephfs/test_cephfs_shell.py b/qa/tasks/cephfs/test_cephfs_shell.py
index 958a5b3118..9093245f17 100644
--- a/qa/tasks/cephfs/test_cephfs_shell.py
+++ b/qa/tasks/cephfs/test_cephfs_shell.py
@@ -39,7 +39,7 @@ class TestCephFSShell(CephFSTestCase):

         conf_contents = "[cephfs-shell]\ncolors = False\ndebug = True\n" 
         confpath = self.mount_a.client_remote.sh('mktemp').strip()
-        self.mount_a.client_remote.write_file(confpath, conf_contents)
+        self.mount_a.client_remote.write_file(confpath, conf_contents, mode='777')
         self.default_shell_conf_path = confpath

     def run_cephfs_shell_cmd(self, cmd, mount_x=None, shell_conf_path=None,

and by running python3 ../qa/tasks/vstart_runner.py tasks.cephfs.test_cephfs_shell.TestCD.test_cd_with_args.

Actions #1

Updated by Rishabh Dave over 3 years ago

  • Status changed from In Progress to Fix Under Review
  • Pull request ID set to 37655
Actions #2

Updated by Venky Shankar almost 2 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF