{"action":"opened","issue":{"url":"https://api.github.com/repos/coreos/etcd/issues/6380","repository_url":"https://api.github.com/repos/coreos/etcd","labels_url":"https://api.github.com/repos/coreos/etcd/issues/6380/labels{/name}","comments_url":"https://api.github.com/repos/coreos/etcd/issues/6380/comments","events_url":"https://api.github.com/repos/coreos/etcd/issues/6380/events","html_url":"https://github.com/coreos/etcd/issues/6380","id":175569848,"number":6380,"title":"functional-tests: stress leases","user":{"login":"heyitsanthony","id":16294350,"avatar_url":"https://avatars.githubusercontent.com/u/16294350?v=3","gravatar_id":"","url":"https://api.github.com/users/heyitsanthony","html_url":"https://github.com/heyitsanthony","followers_url":"https://api.github.com/users/heyitsanthony/followers","following_url":"https://api.github.com/users/heyitsanthony/following{/other_user}","gists_url":"https://api.github.com/users/heyitsanthony/gists{/gist_id}","starred_url":"https://api.github.com/users/heyitsanthony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heyitsanthony/subscriptions","organizations_url":"https://api.github.com/users/heyitsanthony/orgs","repos_url":"https://api.github.com/users/heyitsanthony/repos","events_url":"https://api.github.com/users/heyitsanthony/events{/privacy}","received_events_url":"https://api.github.com/users/heyitsanthony/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/coreos/etcd/labels/component/functional-tester","name":"component/functional-tester","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-07T18:09:55Z","updated_at":"2016-09-07T18:09:55Z","closed_at":null,"body":"We would like to ensure lease related operations are handled correctly in failure recovery path but currently there is no lease testing in the functional tester.\r\n\r\nInvariants to test:\r\n* Lease should not expire before the returned TTL\r\n* Any key attached to an expired/revoked lease should be removed\r\n* All members key + lease state should have same hash for the same revision\r\n\r\nImplementation would be a new stresser, `leaseStresser`:\r\n* creates N lease and attach M keys onto each lease it creates. Sends keeps alive to all created leases.\r\n* randomly the leaseStresser drops leases from the set of leases it keeps; creates new lease to replace it.\r\n* checks the dropped leases are expired, and the keys attached to them are deleted.\r\n* checks the invariants\r\n\r\n"}}
{"actor":{"display_login":"heyitsanthony"}}