----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/52105/#review150746 -----------------------------------------------------------
Verfied work with zk ``` ./bin/mesos-master.sh --work_dir=/tmp/mesos_1 --zk=zk://localhost:2181/mesos --quorum=2 --port=5051 ./bin/mesos-master.sh --work_dir=/tmp/mesos_2 --zk=zk://localhost:2181/mesos --quorum=2 --port=5052 ./bin/mesos-master.sh --work_dir=/tmp/mesos_3 --zk=zk://localhost:2181/mesos --quorum=2 --port=5053 ``` and test with following urls ``` # 5051 is the leading master. $ curl -v http://localhost:5051/redirect # 307 to '//localhost:5051' $ curl -v http://localhost:5051/redirect # 404 $ curl -v http://localhost:5051/redirect/a # 404 $ curl -v http://localhost:5051/state # 200 $ curl -v http://localhost:5052/master/redirect/a # 404 # 5052 is a no-leading master. $ curl -v http://localhost:5052/redirect # 307 to '//localhost:5051' $ curl -v http://localhost:5052/redirect # 404 $ curl -v http://localhost:5052/redirect/a # 404 $ curl -v http://localhost:5052/state # 307 to '//localhost:5051/master/state' $ curl -v http://localhost:5052/master/redirect/a # 404 ``` src/master/http.cpp (lines 2036 - 2037) <https://reviews.apache.org/r/52105/#comment218802> Add blank lines above and below, like ``` string basePath = "//" + hostname.get() + ":" + stringify(info.port()); string redirectPath = "/redirect"; string masterRedirectPath = "/" + master->self().id + "/redirect"; if (request.url.path == redirectPath || ``` src/master/http.cpp (line 2044) <https://reviews.apache.org/r/52105/#comment218801> Indent incorrect here, should be ``` } else if (strings::startsWith(request.url.path, redirectPath + "/") || strings::startsWith(request.url.path, masterRedirectPath + "/")) { ``` src/master/http.cpp (line 2045) <https://reviews.apache.org/r/52105/#comment218804> Comment need to end with `.` - haosdent huang On Sept. 28, 2016, 5:56 p.m., Charles Allen wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/52105/ > ----------------------------------------------------------- > > (Updated Sept. 28, 2016, 5:56 p.m.) > > > Review request for mesos and Vinod Kone. > > > Bugs: MESOS-6210 > https://issues.apache.org/jira/browse/MESOS-6210 > > > Repository: mesos > > > Description > ------- > > Detect paths starting with `/redirect/` or `/master_id/redirect/` > and return 404 instead of getting into a redirect loop. > > > Diffs > ----- > > src/master/http.cpp 9005e7c308d5f57c6f5c573951d468a3ba730740 > > Diff: https://reviews.apache.org/r/52105/diff/ > > > Testing > ------- > > Single Node started with `./src/mesos-master --work_dir=/tmp/mesos` > > > ``` > Charless-MacBook-Pro:~ charlesallen$ curl -v http://127.0.0.1:5050/redirect > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /redirect HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 307 Temporary Redirect > < Date: Wed, 28 Sep 2016 17:49:22 GMT > < Location: //192.168.1.234:5050 > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v http://127.0.0.1:5050/redirect/ > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /redirect/ HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Date: Wed, 28 Sep 2016 17:49:24 GMT > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v > http://127.0.0.1:5050/redirect/foo > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /redirect/foo HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Date: Wed, 28 Sep 2016 17:49:26 GMT > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v > http://127.0.0.1:5050/redirect_foo > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /redirect_foo HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Date: Wed, 28 Sep 2016 17:49:38 GMT > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v > http://127.0.0.1:5050/master/redirect > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /master/redirect HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 307 Temporary Redirect > < Date: Wed, 28 Sep 2016 17:49:48 GMT > < Location: //192.168.1.234:5050 > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v > http://127.0.0.1:5050/master/redirect/ > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /master/redirect/ HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Date: Wed, 28 Sep 2016 17:49:50 GMT > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v > http://127.0.0.1:5050/master/redirect/foo > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /master/redirect/foo HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Date: Wed, 28 Sep 2016 17:49:51 GMT > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > Charless-MacBook-Pro:~ charlesallen$ curl -v > http://127.0.0.1:5050/master/redirect_foo > * Trying 127.0.0.1... > * Connected to 127.0.0.1 (127.0.0.1) port 5050 (#0) > > GET /master/redirect_foo HTTP/1.1 > > Host: 127.0.0.1:5050 > > User-Agent: curl/7.43.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Date: Wed, 28 Sep 2016 17:49:54 GMT > < Content-Length: 0 > < > * Connection #0 to host 127.0.0.1 left intact > ``` > > It is worth noting that in this PR /master/redirect/ and /redirect/ return > 404, not 307. This behavior is consistent with master. > > > Thanks, > > Charles Allen > >
