[ 
https://issues.apache.org/jira/browse/MESOS-1865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14611005#comment-14611005
 ] 

Cody Maloney commented on MESOS-1865:
-------------------------------------

Following a redirect is entirely a client's choice. Practically in HTTP there 
isn't a better alternative I know of that keeps "simple / dumb" clients working 
well. Right now a number of dumb client programs which want to pull 
master/state.json manually call out to find out what the leading master is from 
the master, then going to that directly and hoping there isn't a race around it.

Practically for systems which care to only monitor the exact master they are 
talking to, most HTTP libraries I have seen you can disable automatic redirect 
following. Currently these APIs sometimes returning incorrect / invalid / stale 
data has caused problems for things like proxy config generation scripts (They 
get the wrong master at just the wrong point in time and generate an empty 
config, leading to badness)

> Redirect to the leader master when current master is not a leader
> -----------------------------------------------------------------
>
>                 Key: MESOS-1865
>                 URL: https://issues.apache.org/jira/browse/MESOS-1865
>             Project: Mesos
>          Issue Type: Bug
>          Components: json api
>    Affects Versions: 0.20.1
>            Reporter: Steven Schlansker
>            Assignee: haosdent
>
> Some of the API endpoints, for example /master/tasks.json, will return bogus 
> information if you query a non-leading master:
> {code}
> [steven@Anesthetize:~]% curl 
> http://master1.mesos-vpcqa.otenv.com:5050/master/tasks.json | jq . | head -n 
> 10
> {
>   "tasks": []
> }
> [steven@Anesthetize:~]% curl 
> http://master2.mesos-vpcqa.otenv.com:5050/master/tasks.json | jq . | head -n 
> 10
> {
>   "tasks": []
> }
> [steven@Anesthetize:~]% curl 
> http://master3.mesos-vpcqa.otenv.com:5050/master/tasks.json | jq . | head -n 
> 10
> {
>   "tasks": [
>     {
>       "executor_id": "",
>       "framework_id": "20140724-231003-419644938-5050-1707-0000",
>       "id": 
> "pp.guestcenterwebhealthmonitor.606cd6ee-4b50-11e4-825b-5212e05f35db",
>       "name": 
> "pp.guestcenterwebhealthmonitor.606cd6ee-4b50-11e4-825b-5212e05f35db",
>       "resources": {
>         "cpus": 0.25,
>         "disk": 0,
> {code}
> This is very hard for end-users to work around.  For example if I query 
> "which master is leading" followed by "leader: which tasks are running" it is 
> possible that the leader fails over in between, leaving me with an incorrect 
> answer and no way to know that this happened.
> In my opinion the API should return the correct response (by asking the 
> current leader?) or an error (500 Not the leader?) but it's unacceptable to 
> return a successful wrong answer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to