{"action":"created","issue":{"url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1361","repository_url":"https://api.github.com/repos/NebulousLabs/Sia","labels_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1361/labels{/name}","comments_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1361/comments","events_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1361/events","html_url":"https://github.com/NebulousLabs/Sia/pull/1361","id":165462292,"number":1361,"title":"fix download bug","user":{"login":"lukechampine","id":3344749,"avatar_url":"https://avatars.githubusercontent.com/u/3344749?v=3","gravatar_id":"","url":"https://api.github.com/users/lukechampine","html_url":"https://github.com/lukechampine","followers_url":"https://api.github.com/users/lukechampine/followers","following_url":"https://api.github.com/users/lukechampine/following{/other_user}","gists_url":"https://api.github.com/users/lukechampine/gists{/gist_id}","starred_url":"https://api.github.com/users/lukechampine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukechampine/subscriptions","organizations_url":"https://api.github.com/users/lukechampine/orgs","repos_url":"https://api.github.com/users/lukechampine/repos","events_url":"https://api.github.com/users/lukechampine/events{/privacy}","received_events_url":"https://api.github.com/users/lukechampine/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/NebulousLabs/Sia/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-07-14T02:24:48Z","updated_at":"2016-07-14T20:24:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/NebulousLabs/Sia/pulls/1361","html_url":"https://github.com/NebulousLabs/Sia/pull/1361","diff_url":"https://github.com/NebulousLabs/Sia/pull/1361.diff","patch_url":"https://github.com/NebulousLabs/Sia/pull/1361.patch"},"body":"Be very careful when writing `for _, x := range xs` loops."},"comment":{"url":"https://api.github.com/repos/NebulousLabs/Sia/issues/comments/232781370","html_url":"https://github.com/NebulousLabs/Sia/pull/1361#issuecomment-232781370","issue_url":"https://api.github.com/repos/NebulousLabs/Sia/issues/1361","id":232781370,"user":{"login":"lukechampine","id":3344749,"avatar_url":"https://avatars.githubusercontent.com/u/3344749?v=3","gravatar_id":"","url":"https://api.github.com/users/lukechampine","html_url":"https://github.com/lukechampine","followers_url":"https://api.github.com/users/lukechampine/followers","following_url":"https://api.github.com/users/lukechampine/following{/other_user}","gists_url":"https://api.github.com/users/lukechampine/gists{/gist_id}","starred_url":"https://api.github.com/users/lukechampine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukechampine/subscriptions","organizations_url":"https://api.github.com/users/lukechampine/orgs","repos_url":"https://api.github.com/users/lukechampine/repos","events_url":"https://api.github.com/users/lukechampine/events{/privacy}","received_events_url":"https://api.github.com/users/lukechampine/received_events","type":"User","site_admin":false},"created_at":"2016-07-14T20:24:08Z","updated_at":"2016-07-14T20:24:08Z","body":"To me, this is another indicator that our current testing strategy is insufficient. The `Download` function had good test coverage (including the buggy code), and was subject to both unit tests and an integration test in the api package. But none of them found the bug. Why? Because our testing assumptions did not match real-world conditions. Specifically, in this case the bug only appears when uploading to more than one host with an erasure code that requires more than one piece.\r\nIs that oversight my fault? Sure. But it's unreasonable to assume that we'll always be able to anticipate these sorts of bugs and/or perfectly replicate real-world conditions during testing. The point is: manual testing uncovered the bug immediately, and I had no trouble locating the cause and fixing it. I think we undervalue that sort of testing."}}
{"actor":{"display_login":"lukechampine"}}