{"action":"closed","issue":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/680","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/680/labels{/name}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/680/comments","events_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/680/events","html_url":"https://github.com/cockroachdb/cockroach/issues/680","id":68944204,"number":680,"title":"Validate requests before proposing to raft","user":{"login":"bdarnell","id":160562,"avatar_url":"https://avatars.githubusercontent.com/u/160562?v=3","gravatar_id":"","url":"https://api.github.com/users/bdarnell","html_url":"https://github.com/bdarnell","followers_url":"https://api.github.com/users/bdarnell/followers","following_url":"https://api.github.com/users/bdarnell/following{/other_user}","gists_url":"https://api.github.com/users/bdarnell/gists{/gist_id}","starred_url":"https://api.github.com/users/bdarnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdarnell/subscriptions","organizations_url":"https://api.github.com/users/bdarnell/orgs","repos_url":"https://api.github.com/users/bdarnell/repos","events_url":"https://api.github.com/users/bdarnell/events{/privacy}","received_events_url":"https://api.github.com/users/bdarnell/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"spencerkimball","id":6147149,"avatar_url":"https://avatars.githubusercontent.com/u/6147149?v=3","gravatar_id":"","url":"https://api.github.com/users/spencerkimball","html_url":"https://github.com/spencerkimball","followers_url":"https://api.github.com/users/spencerkimball/followers","following_url":"https://api.github.com/users/spencerkimball/following{/other_user}","gists_url":"https://api.github.com/users/spencerkimball/gists{/gist_id}","starred_url":"https://api.github.com/users/spencerkimball/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spencerkimball/subscriptions","organizations_url":"https://api.github.com/users/spencerkimball/orgs","repos_url":"https://api.github.com/users/spencerkimball/repos","events_url":"https://api.github.com/users/spencerkimball/events{/privacy}","received_events_url":"https://api.github.com/users/spencerkimball/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-04-16T15:08:15Z","updated_at":"2015-04-17T14:58:20Z","closed_at":"2015-04-17T14:58:20Z","body":"We should perform some basic validation of requests in Store.ExecuteCommand before proposing them to raft (e.g. that the requested key falls within the requested range). The command will eventually fail anyway (and we cannot remove the later validation because the range may split in between proposing the command and applying it) but it is much cheaper to fail it before going through the raft pipeline. See #657 for a case where these commands had a significant cost."}}