Liqiang Lin created MESOS-5184: ---------------------------------- Summary: Mesos does not validate role info when framework registered with specified role Key: MESOS-5184 URL: https://issues.apache.org/jira/browse/MESOS-5184 Project: Mesos Issue Type: Bug Components: general Affects Versions: 0.28.0 Reporter: Liqiang Lin Fix For: 0.29.0
When framework registered with specified role, Mesos does not validate the role info. It will accept the subscription and send unreserved resources as offer to the framework. # cat register.json { "framework_id": {"value" : "test1"}, "type":"SUBSCRIBE", "subscribe":{ "framework_info":{ "user":"root", "name":"test1", "failover_timeout":60, "role":"/test/test1", "id":{"value":"test1"}, "principal":"test1", "capabilities":[{"type":"REVOCABLE_RESOURCES"}] }, "force":true } } # curl -v http://192.168.56.110:5050/api/v1/scheduler -H "Content-type: application/json" -X POST -d @register.json * Hostname was NOT found in DNS cache * Trying 192.168.56.110... * Connected to 192.168.56.110 (192.168.56.110) port 5050 (#0) > POST /api/v1/scheduler HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 192.168.56.110:5050 > Accept: */* > Content-type: application/json > Content-Length: 265 > * upload completely sent off: 265 out of 265 bytes < HTTP/1.1 200 OK < Date: Wed, 06 Apr 2016 21:34:18 GMT < Transfer-Encoding: chunked < Mesos-Stream-Id: 8b2c6740-b619-49c3-825a-e6ae780f4edc < Content-Type: application/json < 69 {"subscribed":{"framework_id":{"value":"test1"}},"type":"SUBSCRIBED"}20 {"type":"HEARTBEAT"}1531 {"offers":{"offers":[{"agent_id":{"value":"2cd5576e-6260-4262-a62c-b0dc45c86c45-S0"},"attributes":[{"name":"mesos_agent_type","text":{"value":"IBM_MESOS_EGO"},"type":"TEXT"},{"name":"hostname","text":{"value":"mesos2"},"type":"TEXT"}],"framework_id":{"value":"test1"},"hostname":"mesos2","id":{"value":"5b84aad8-dd60-40b3-84c2-93be6b7aa81c-O0"},"resources":[{"name":"disk","role":"*","scalar":{"value":20576.0},"type":"SCALAR"},{"name":"ports","ranges":{"range":[{"begin":31000,"end":32000}]},"role":"*","type":"RANGES"},{"name":"mem","role":"*","scalar":{"value":3952.0},"type":"SCALAR"},{"name":"cpus","role":"*","scalar":{"value":4.0},"type":"SCALAR"}],"url":{"address":{"hostname":"mesos2","ip":"192.168.56.110","port":5051},"path":"\/slave(1)","scheme":"http"}},{"agent_id":{"value":"2cd5576e-6260-4262-a62c-b0dc45c86c45-S1"},"attributes":[{"name":"mesos_agent_type","text":{"value":"IBM_MESOS_EGO"},"type":"TEXT"},{"name":"hostname","text":{"value":"mesos1"},"type":"TEXT"}],"framework_id":{"v alue":"test1"},"hostname":"mesos1","id":{"value":"5b84aad8-dd60-40b3-84c2-93be6b7aa81c-O1"},"resources":[{"name":"disk","role":"*","scalar":{"value":21468.0},"type":"SCALAR"},{"name":"ports","ranges":{"range":[{"begin":31000,"end":32000}]},"role":"*","type":"RANGES"},{"name":"mem","role":"*","scalar":{"value":3952.0},"type":"SCALAR"},{"name":"cpus","role":"*","scalar":{"value":4.0},"type":"SCALAR"}],"url":{"address":{"hostname":"mesos1","ip":"192.168.56.111","port":5051},"path":"\/slave(1)","scheme":"http"}}]},"type":"OFFERS"}20 {"type":"HEARTBEAT"}20 As you see, the role under which framework register is "/test/test1", which is an invalid role according to [#MESOS-2210|https://issues.apache.org/jira/browse/MESOS-2210] And Mesos master log I0407 05:34:18.132333 20672 master.cpp:2107] Received subscription request for HTTP framework 'test1' I0407 05:34:18.133515 20672 master.cpp:2198] Subscribing framework 'test1' with checkpointing disabled and capabilities [ REVOCABLE_RESOURCES ] I0407 05:34:18.135027 20674 hierarchical.cpp:264] Added framework test1 I0407 05:34:18.138746 20672 master.cpp:5659] Sending 2 offers to framework test1 (test1) -- This message was sent by Atlassian JIRA (v6.3.4#6332)