{"action":"created","issue":{"url":"https://api.github.com/repos/mozilla/normandy/issues/633","repository_url":"https://api.github.com/repos/mozilla/normandy","labels_url":"https://api.github.com/repos/mozilla/normandy/issues/633/labels{/name}","comments_url":"https://api.github.com/repos/mozilla/normandy/issues/633/comments","events_url":"https://api.github.com/repos/mozilla/normandy/issues/633/events","html_url":"https://github.com/mozilla/normandy/pull/633","id":216814987,"number":633,"title":"addon: Add Storage durability checks (#433)","user":{"login":"andymikulski","id":2767162,"avatar_url":"https://avatars2.githubusercontent.com/u/2767162?v=3","gravatar_id":"","url":"https://api.github.com/users/andymikulski","html_url":"https://github.com/andymikulski","followers_url":"https://api.github.com/users/andymikulski/followers","following_url":"https://api.github.com/users/andymikulski/following{/other_user}","gists_url":"https://api.github.com/users/andymikulski/gists{/gist_id}","starred_url":"https://api.github.com/users/andymikulski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andymikulski/subscriptions","organizations_url":"https://api.github.com/users/andymikulski/orgs","repos_url":"https://api.github.com/users/andymikulski/repos","events_url":"https://api.github.com/users/andymikulski/events{/privacy}","received_events_url":"https://api.github.com/users/andymikulski/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"andymikulski","id":2767162,"avatar_url":"https://avatars2.githubusercontent.com/u/2767162?v=3","gravatar_id":"","url":"https://api.github.com/users/andymikulski","html_url":"https://github.com/andymikulski","followers_url":"https://api.github.com/users/andymikulski/followers","following_url":"https://api.github.com/users/andymikulski/following{/other_user}","gists_url":"https://api.github.com/users/andymikulski/gists{/gist_id}","starred_url":"https://api.github.com/users/andymikulski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andymikulski/subscriptions","organizations_url":"https://api.github.com/users/andymikulski/orgs","repos_url":"https://api.github.com/users/andymikulski/repos","events_url":"https://api.github.com/users/andymikulski/events{/privacy}","received_events_url":"https://api.github.com/users/andymikulski/received_events","type":"User","site_admin":false},"assignees":[{"login":"andymikulski","id":2767162,"avatar_url":"https://avatars2.githubusercontent.com/u/2767162?v=3","gravatar_id":"","url":"https://api.github.com/users/andymikulski","html_url":"https://github.com/andymikulski","followers_url":"https://api.github.com/users/andymikulski/followers","following_url":"https://api.github.com/users/andymikulski/following{/other_user}","gists_url":"https://api.github.com/users/andymikulski/gists{/gist_id}","starred_url":"https://api.github.com/users/andymikulski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andymikulski/subscriptions","organizations_url":"https://api.github.com/users/andymikulski/orgs","repos_url":"https://api.github.com/users/andymikulski/repos","events_url":"https://api.github.com/users/andymikulski/events{/privacy}","received_events_url":"https://api.github.com/users/andymikulski/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2017-03-24T15:10:55Z","updated_at":"2017-03-30T16:36:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mozilla/normandy/pulls/633","html_url":"https://github.com/mozilla/normandy/pull/633","diff_url":"https://github.com/mozilla/normandy/pull/633.diff","patch_url":"https://github.com/mozilla/normandy/pull/633.patch"},"body":"Fixes #433 \r\n\r\nI think this is ready for feedback, though I had a few questions:\r\n\r\n- Should non-durable storage throw errors?\r\n- Right now I have it set up so that when Storage is created, it seeds the durability check, and then every read/write after that it checks the durability.\r\n  - Does it matter if the durability is set to 0 for each new Storage? Should it retain the existing value for any reason?\r\n  - Is it overkill to run a durability check on each read/write? On selfrepair we check on every read, fwiw.\r\n- Is `store.saveSoon()` necessary to save the durability key update? I'm assuming so.\r\n- How should tests for this be written? There already exists a bunch of `browser_Storage` tests that cover storing different types of data (objects, strings, numbers, etc). \r\n  - Could it be as simple as creating two stores with the same namespace, and testing if they can interact with the same values?\r\n  - On the self repair side, we simply set a value and then check if the store can read it - which doesn't necessarily seem to be a complete 'durability' check, but maybe I'm wrong.\r\n- When a Storage object is created, I see a call to `Cu.cloneInto(...)` - does the durability seed need to happen after that step?"},"comment":{"url":"https://api.github.com/repos/mozilla/normandy/issues/comments/290467970","html_url":"https://github.com/mozilla/normandy/pull/633#issuecomment-290467970","issue_url":"https://api.github.com/repos/mozilla/normandy/issues/633","id":290467970,"user":{"login":"Osmose","id":193106,"avatar_url":"https://avatars2.githubusercontent.com/u/193106?v=3","gravatar_id":"","url":"https://api.github.com/users/Osmose","html_url":"https://github.com/Osmose","followers_url":"https://api.github.com/users/Osmose/followers","following_url":"https://api.github.com/users/Osmose/following{/other_user}","gists_url":"https://api.github.com/users/Osmose/gists{/gist_id}","starred_url":"https://api.github.com/users/Osmose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Osmose/subscriptions","organizations_url":"https://api.github.com/users/Osmose/orgs","repos_url":"https://api.github.com/users/Osmose/repos","events_url":"https://api.github.com/users/Osmose/events{/privacy}","received_events_url":"https://api.github.com/users/Osmose/received_events","type":"User","site_admin":false},"created_at":"2017-03-30T16:36:30Z","updated_at":"2017-03-30T16:36:30Z","body":"> Any idea as to why Taskcluster is failing on this? Locally, the addon tests pass fine, and looking at (what I think are) the logs, I don't really see any errors indicating the problem.\r\n\r\nI think our TC builds in general might be busted, but the errors aren't consistent; I've seen three separate types of failures in the last 24 hours."}}
{"actor":{"display_login":"Osmose"}}