From: Sage Weil Date: Tue, 2 Mar 2021 16:35:41 +0000 (-0600) Subject: cephadm: fix escaping/quoting of stderr-prefix arg for ceph daemons X-Git-Tag: v17.1.0~2778^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F39730%2Fhead;p=ceph.git cephadm: fix escaping/quoting of stderr-prefix arg for ceph daemons On some versions of podman doing --default-log-stderr-prefix="debug " seems to work okay, but on others it does not, producing lines like /usr/bin/ceph-mon: "debug "2021-02-26T15:30:36.266+0000 7f3d8a955700 4 rocksdb: Options.db_write_buffer_size: 0 Quote things properly for the unit.run bash script. Signed-off-by: Sage Weil --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 8b6fabbf5b93..cdd7e8a76a83 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -59,6 +59,7 @@ import os import platform import pwd import random +import shlex import shutil import socket import string @@ -2068,7 +2069,7 @@ def get_daemon_args(ctx, fsid, daemon_type, daemon_id): '--setgroup', 'ceph', '--default-log-to-file=false', '--default-log-to-stderr=true', - '--default-log-stderr-prefix="debug "', + '--default-log-stderr-prefix=debug ', ] if daemon_type == 'mon': r += [ @@ -2592,10 +2593,15 @@ def _write_container_cmd_to_bash(ctx, file_obj, container, comment=None, backgro file_obj.write('! '+ ' '.join(container.rm_cmd()) + ' 2> /dev/null\n') # Sometimes, `podman rm` doesn't find the container. Then you'll have to add `--storage` if 'podman' in ctx.container_path: - file_obj.write('! '+ ' '.join(container.rm_cmd(storage=True)) + ' 2> /dev/null\n') + file_obj.write( + '! ' + + ' '.join([shlex.quote(a) for a in container.rm_cmd(storage=True)]) + + ' 2> /dev/null\n') # container run command - file_obj.write(' '.join(container.run_cmd()) + (' &' if background else '') + '\n') + file_obj.write( + ' '.join([shlex.quote(a) for a in container.run_cmd()]) + + (' &' if background else '') + '\n') def deploy_daemon_units(