[
https://issues.apache.org/jira/browse/MESOS-1865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steven Schlansker updated MESOS-1865:
-------------------------------------
Description:
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.
was:
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 "master: 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.
> Mesos APIs for non-leading masters should return copies of the leader's state
> or an error, not a success with incorrect information
> -----------------------------------------------------------------------------------------------------------------------------------
>
> 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
>
> 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)