----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/65090/#review195762 -----------------------------------------------------------
Fix it, then Ship it! src/master/flags.hpp Line 105 (original), 105 (patched) <https://reviews.apache.org/r/65090/#comment275064> Nit: in the description, I would recommend: s/This prevents this leakage/This patch prevents this leakage/ I think it's just a bit more clear. - Greg Mann On Jan. 18, 2018, 7:01 p.m., Alexander Rojas wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/65090/ > ----------------------------------------------------------- > > (Updated Jan. 18, 2018, 7:01 p.m.) > > > Review request for mesos and Greg Mann. > > > Bugs: MESOS-8413 > https://issues.apache.org/jira/browse/MESOS-8413 > > > Repository: mesos > > > Description > ------- > > Up until now the Mesos master flag `--zk` as well as the Mesos agent > flag `--master` would leak ZooKeeper authentication credentials in > both logs and results for the `/flags` endpoint, if the credentials > were part of the configuration url. > > This prevents this leakage if a user decides to store the ZooKeeper > url in a file and pass the file as a value to the flags mentioned > above (using the preffix `file://`). > > > Diffs > ----- > > src/master/flags.hpp dabb414560f506787b6e821a27af623c8da44b11 > src/master/main.cpp f65ce637d77ce183f83b70dce6da8d0b4b8b8e71 > src/slave/flags.hpp 42c4861b5ecdc808d04bfe8f5c35572074fd2bdc > src/slave/main.cpp f38fec6028ade0e0a51fd2cce7470c5c36e66396 > > > Diff: https://reviews.apache.org/r/65090/diff/2/ > > > Testing > ------- > > ```sh > make -j12 check > > # We don't seem to test flags in unit tests anywhere, > # so additionally I ran: > > docker pull zookeeper > > cat <<EOF > /tmp/$USER/zk-stack.yml > version: '3.1' > services: > zoo1: > image: zookeeper > restart: always > hostname: zoo1 > ports: > - 2181:2181 > environment: > ZOO_MY_ID: 1 > ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 > server.3=zoo3:2888:3888 > zoo2: > image: zookeeper > restart: always > hostname: zoo2 > ports: > - 2182:2181 > environment: > ZOO_MY_ID: 2 > ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 > server.3=zoo3:2888:3888 > zoo3: > image: zookeeper > restart: always > hostname: zoo3 > ports: > - 2183:2181 > environment: > ZOO_MY_ID: 2 > ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 > server.3=0.0.0.0:2888:3888 > EOF > > docker-compose -f /tmp/$USER/zk-stack.yml up > > cd ${MESOS_BUILD_DIR} > > # This command should fail to launch because there is no file zk.conf > ./bin/mesos-master.sh \ > --work_dir=/tmp/$USER/mesos/master \ > --log_dir=/tmp/$USER/mesos/master/log \ > --ip=$PUBLIC_IP \ > --quorum=1 \ > --zk=file:///tmp/$USER/zk/zk.conf > > cat <<EOF > /tmp/$USER/zk/zk.conf > zk://$PUBLIC_IP:2181,$PUBLIC_IP:2182,$PUBLIC_IP:2183/mesos > EOF > > ./bin/mesos-master.sh \ > --work_dir=/tmp/$USER/mesos/master \ > --log_dir=/tmp/$USER/mesos/master/log \ > --ip=$PUBLIC_IP \ > --quorum=1 \ > --zk=`cat /tmp/$USER/zk/zk.conf` & > > [[ $(http -b $PUBLIC_IP:5050/flags | jq -r '.flags.zk') == `cat > /tmp/$USER/zk/zk.conf` ]] > > kill %1 > > > ./bin/mesos-master.sh \ > --work_dir=/tmp/$USER/mesos/master \ > --log_dir=/tmp/$USER/mesos/master/log \ > --ip=$PUBLIC_IP \ > --quorum=1 \ > --zk=file:///tmp/$USER/zk/zk.conf & > > [[ $(http -b $PUBLIC_IP:5050/flags | jq -r '.flags.zk') == > "/tmp/$USER/zk/zk.conf" ]] > > ./bin/mesos-agent.sh \ > --work_dir=/tmp/$USER/mesos/agent \ > --log_dir=/tmp/$USER/mesos/agent/log \ > --master=file:///tmp/$USER/zk/zk.conf & > > [[ $(http -b $PUBLIC_IP:5051/flags | jq -r '.flags.master') == > "/tmp/$USER/zk/zk.conf" ]] > > kill %2 > > ./bin/mesos-agent.sh \ > --work_dir=/tmp/$USER/mesos/agent \ > --log_dir=/tmp/$USER/mesos/agent/log \ > --zk=`cat /tmp/$USER/zk/zk.conf` & > > [[ $(http -b $PUBLIC_IP:5051/flags | jq -r '.flags.master') == `cat > /tmp/$USER/zk/zk.conf` ]] > > kill %2 > kill %1 > ``` > > > Thanks, > > Alexander Rojas > >