{"action":"created","comment":{"url":"https://api.github.com/repos/mopidy/mopidy/pulls/comments/29736596","id":29736596,"diff_hunk":"@@ -152,12 +168,18 @@ def get_images(self, uris):\n \n         results = {uri: tuple() for uri in uris}\n         for backend, future in futures.items():\n-            try:\n+            with _backend_error_handling(backend):\n+                if future.get() is None:\n+                    continue\n+                validation.check_instance(future.get(), collections.Mapping)\n                 for uri, images in future.get().items():\n+                    if uri not in uris:\n+                        name = backend.actor_ref.actor_class.__name__\n+                        logger.warning(\n+                            '%s backend returned image for URI we did not '\n+                            'ask for: %s', name, uri)","path":"mopidy/core/library.py","position":98,"original_position":98,"commit_id":"9f64a8719aae6e04876d80d3d0d32a04f82913f9","original_commit_id":"9f64a8719aae6e04876d80d3d0d32a04f82913f9","user":{"login":"jodal","id":43726,"avatar_url":"https://avatars.githubusercontent.com/u/43726?v=3","gravatar_id":"","url":"https://api.github.com/users/jodal","html_url":"https://github.com/jodal","followers_url":"https://api.github.com/users/jodal/followers","following_url":"https://api.github.com/users/jodal/following{/other_user}","gists_url":"https://api.github.com/users/jodal/gists{/gist_id}","starred_url":"https://api.github.com/users/jodal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodal/subscriptions","organizations_url":"https://api.github.com/users/jodal/orgs","repos_url":"https://api.github.com/users/jodal/repos","events_url":"https://api.github.com/users/jodal/events{/privacy}","received_events_url":"https://api.github.com/users/jodal/received_events","type":"User","site_admin":false},"body":"Can you just raise a ValdiationError here and have _backend_error_handling take care of the logging? You'll loose the entire result from that backend, but that's just punishment for giving us bloated results.","created_at":"2015-05-06T06:19:11Z","updated_at":"2015-05-06T06:19:11Z","html_url":"https://github.com/mopidy/mopidy/pull/1163#discussion_r29736596","pull_request_url":"https://api.github.com/repos/mopidy/mopidy/pulls/1163","_links":{"self":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/comments/29736596"},"html":{"href":"https://github.com/mopidy/mopidy/pull/1163#discussion_r29736596"},"pull_request":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1163"}}},"pull_request":{"url":"https://api.github.com/repos/mopidy/mopidy/pulls/1163","id":34776256,"html_url":"https://github.com/mopidy/mopidy/pull/1163","diff_url":"https://github.com/mopidy/mopidy/pull/1163.diff","patch_url":"https://github.com/mopidy/mopidy/pull/1163.patch","issue_url":"https://api.github.com/repos/mopidy/mopidy/issues/1163","number":1163,"state":"open","locked":false,"title":"Don't trust backends...","user":{"login":"adamcik","id":82534,"avatar_url":"https://avatars.githubusercontent.com/u/82534?v=3","gravatar_id":"","url":"https://api.github.com/users/adamcik","html_url":"https://github.com/adamcik","followers_url":"https://api.github.com/users/adamcik/followers","following_url":"https://api.github.com/users/adamcik/following{/other_user}","gists_url":"https://api.github.com/users/adamcik/gists{/gist_id}","starred_url":"https://api.github.com/users/adamcik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamcik/subscriptions","organizations_url":"https://api.github.com/users/adamcik/orgs","repos_url":"https://api.github.com/users/adamcik/repos","events_url":"https://api.github.com/users/adamcik/events{/privacy}","received_events_url":"https://api.github.com/users/adamcik/received_events","type":"User","site_admin":false},"body":"Mostly fixes #1161 - part I've not tackled is playback. At least for this PR as I'm undecided about where to go with that and gapless and missing return values etc. as some of those things are much nicer to fix in my branch.\r\n\r\nNote that we probably want to update the logging messages to \"blame\" the backends and divert bugs their way :-)","created_at":"2015-05-05T23:05:23Z","updated_at":"2015-05-06T06:19:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"155aec29b6e397a9f1ff863e09f11f64e55f814b","assignee":{"login":"jodal","id":43726,"avatar_url":"https://avatars.githubusercontent.com/u/43726?v=3","gravatar_id":"","url":"https://api.github.com/users/jodal","html_url":"https://github.com/jodal","followers_url":"https://api.github.com/users/jodal/followers","following_url":"https://api.github.com/users/jodal/following{/other_user}","gists_url":"https://api.github.com/users/jodal/gists{/gist_id}","starred_url":"https://api.github.com/users/jodal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodal/subscriptions","organizations_url":"https://api.github.com/users/jodal/orgs","repos_url":"https://api.github.com/users/jodal/repos","events_url":"https://api.github.com/users/jodal/events{/privacy}","received_events_url":"https://api.github.com/users/jodal/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/mopidy/mopidy/milestones/40","html_url":"https://github.com/mopidy/mopidy/milestones/v1.1%20-%20Robust%20core","labels_url":"https://api.github.com/repos/mopidy/mopidy/milestones/40/labels","id":965996,"number":40,"title":"v1.1 - Robust core","description":"\r\n\r\n<!---\r\n@huboard:{\"order\":31.75}\r\n-->\r\n","creator":{"login":"jodal","id":43726,"avatar_url":"https://avatars.githubusercontent.com/u/43726?v=3","gravatar_id":"","url":"https://api.github.com/users/jodal","html_url":"https://github.com/jodal","followers_url":"https://api.github.com/users/jodal/followers","following_url":"https://api.github.com/users/jodal/following{/other_user}","gists_url":"https://api.github.com/users/jodal/gists{/gist_id}","starred_url":"https://api.github.com/users/jodal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodal/subscriptions","organizations_url":"https://api.github.com/users/jodal/orgs","repos_url":"https://api.github.com/users/jodal/repos","events_url":"https://api.github.com/users/jodal/events{/privacy}","received_events_url":"https://api.github.com/users/jodal/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":22,"state":"open","created_at":"2015-02-04T19:26:36Z","updated_at":"2015-05-05T23:11:25Z","due_on":"2015-12-31T23:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/mopidy/mopidy/pulls/1163/commits","review_comments_url":"https://api.github.com/repos/mopidy/mopidy/pulls/1163/comments","review_comment_url":"https://api.github.com/repos/mopidy/mopidy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mopidy/mopidy/issues/1163/comments","statuses_url":"https://api.github.com/repos/mopidy/mopidy/statuses/9f64a8719aae6e04876d80d3d0d32a04f82913f9","head":{"label":"adamcik:feature/core-dont-trust-backends","ref":"feature/core-dont-trust-backends","sha":"9f64a8719aae6e04876d80d3d0d32a04f82913f9","user":{"login":"adamcik","id":82534,"avatar_url":"https://avatars.githubusercontent.com/u/82534?v=3","gravatar_id":"","url":"https://api.github.com/users/adamcik","html_url":"https://github.com/adamcik","followers_url":"https://api.github.com/users/adamcik/followers","following_url":"https://api.github.com/users/adamcik/following{/other_user}","gists_url":"https://api.github.com/users/adamcik/gists{/gist_id}","starred_url":"https://api.github.com/users/adamcik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamcik/subscriptions","organizations_url":"https://api.github.com/users/adamcik/orgs","repos_url":"https://api.github.com/users/adamcik/repos","events_url":"https://api.github.com/users/adamcik/events{/privacy}","received_events_url":"https://api.github.com/users/adamcik/received_events","type":"User","site_admin":false},"repo":{"id":504825,"name":"mopidy","full_name":"adamcik/mopidy","owner":{"login":"adamcik","id":82534,"avatar_url":"https://avatars.githubusercontent.com/u/82534?v=3","gravatar_id":"","url":"https://api.github.com/users/adamcik","html_url":"https://github.com/adamcik","followers_url":"https://api.github.com/users/adamcik/followers","following_url":"https://api.github.com/users/adamcik/following{/other_user}","gists_url":"https://api.github.com/users/adamcik/gists{/gist_id}","starred_url":"https://api.github.com/users/adamcik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamcik/subscriptions","organizations_url":"https://api.github.com/users/adamcik/orgs","repos_url":"https://api.github.com/users/adamcik/repos","events_url":"https://api.github.com/users/adamcik/events{/privacy}","received_events_url":"https://api.github.com/users/adamcik/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/adamcik/mopidy","description":"MPD server with Spotify support","fork":true,"url":"https://api.github.com/repos/adamcik/mopidy","forks_url":"https://api.github.com/repos/adamcik/mopidy/forks","keys_url":"https://api.github.com/repos/adamcik/mopidy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adamcik/mopidy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adamcik/mopidy/teams","hooks_url":"https://api.github.com/repos/adamcik/mopidy/hooks","issue_events_url":"https://api.github.com/repos/adamcik/mopidy/issues/events{/number}","events_url":"https://api.github.com/repos/adamcik/mopidy/events","assignees_url":"https://api.github.com/repos/adamcik/mopidy/assignees{/user}","branches_url":"https://api.github.com/repos/adamcik/mopidy/branches{/branch}","tags_url":"https://api.github.com/repos/adamcik/mopidy/tags","blobs_url":"https://api.github.com/repos/adamcik/mopidy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adamcik/mopidy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adamcik/mopidy/git/refs{/sha}","trees_url":"https://api.github.com/repos/adamcik/mopidy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adamcik/mopidy/statuses/{sha}","languages_url":"https://api.github.com/repos/adamcik/mopidy/languages","stargazers_url":"https://api.github.com/repos/adamcik/mopidy/stargazers","contributors_url":"https://api.github.com/repos/adamcik/mopidy/contributors","subscribers_url":"https://api.github.com/repos/adamcik/mopidy/subscribers","subscription_url":"https://api.github.com/repos/adamcik/mopidy/subscription","commits_url":"https://api.github.com/repos/adamcik/mopidy/commits{/sha}","git_commits_url":"https://api.github.com/repos/adamcik/mopidy/git/commits{/sha}","comments_url":"https://api.github.com/repos/adamcik/mopidy/comments{/number}","issue_comment_url":"https://api.github.com/repos/adamcik/mopidy/issues/comments{/number}","contents_url":"https://api.github.com/repos/adamcik/mopidy/contents/{+path}","compare_url":"https://api.github.com/repos/adamcik/mopidy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adamcik/mopidy/merges","archive_url":"https://api.github.com/repos/adamcik/mopidy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adamcik/mopidy/downloads","issues_url":"https://api.github.com/repos/adamcik/mopidy/issues{/number}","pulls_url":"https://api.github.com/repos/adamcik/mopidy/pulls{/number}","milestones_url":"https://api.github.com/repos/adamcik/mopidy/milestones{/number}","notifications_url":"https://api.github.com/repos/adamcik/mopidy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adamcik/mopidy/labels{/name}","releases_url":"https://api.github.com/repos/adamcik/mopidy/releases{/id}","created_at":"2010-02-06T01:36:22Z","updated_at":"2015-04-08T22:10:48Z","pushed_at":"2015-05-05T23:03:01Z","git_url":"git://github.com/adamcik/mopidy.git","ssh_url":"git@github.com:adamcik/mopidy.git","clone_url":"https://github.com/adamcik/mopidy.git","svn_url":"https://github.com/adamcik/mopidy","homepage":"http://www.mopidy.com/","size":19351,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":3,"default_branch":"develop"}},"base":{"label":"mopidy:develop","ref":"develop","sha":"746c3059ba240d771ddc1bc72fee6f4b0170e4f3","user":{"login":"mopidy","id":451998,"avatar_url":"https://avatars.githubusercontent.com/u/451998?v=3","gravatar_id":"","url":"https://api.github.com/users/mopidy","html_url":"https://github.com/mopidy","followers_url":"https://api.github.com/users/mopidy/followers","following_url":"https://api.github.com/users/mopidy/following{/other_user}","gists_url":"https://api.github.com/users/mopidy/gists{/gist_id}","starred_url":"https://api.github.com/users/mopidy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mopidy/subscriptions","organizations_url":"https://api.github.com/users/mopidy/orgs","repos_url":"https://api.github.com/users/mopidy/repos","events_url":"https://api.github.com/users/mopidy/events{/privacy}","received_events_url":"https://api.github.com/users/mopidy/received_events","type":"Organization","site_admin":false},"repo":{"id":447036,"name":"mopidy","full_name":"mopidy/mopidy","owner":{"login":"mopidy","id":451998,"avatar_url":"https://avatars.githubusercontent.com/u/451998?v=3","gravatar_id":"","url":"https://api.github.com/users/mopidy","html_url":"https://github.com/mopidy","followers_url":"https://api.github.com/users/mopidy/followers","following_url":"https://api.github.com/users/mopidy/following{/other_user}","gists_url":"https://api.github.com/users/mopidy/gists{/gist_id}","starred_url":"https://api.github.com/users/mopidy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mopidy/subscriptions","organizations_url":"https://api.github.com/users/mopidy/orgs","repos_url":"https://api.github.com/users/mopidy/repos","events_url":"https://api.github.com/users/mopidy/events{/privacy}","received_events_url":"https://api.github.com/users/mopidy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mopidy/mopidy","description":"Mopidy is an extensible music server that plays music from local disk, Spotify, SoundCloud, Google Play Music, and more. You edit the playlist from any phone, tablet, or computer using a range of MPD and web clients.","fork":false,"url":"https://api.github.com/repos/mopidy/mopidy","forks_url":"https://api.github.com/repos/mopidy/mopidy/forks","keys_url":"https://api.github.com/repos/mopidy/mopidy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mopidy/mopidy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mopidy/mopidy/teams","hooks_url":"https://api.github.com/repos/mopidy/mopidy/hooks","issue_events_url":"https://api.github.com/repos/mopidy/mopidy/issues/events{/number}","events_url":"https://api.github.com/repos/mopidy/mopidy/events","assignees_url":"https://api.github.com/repos/mopidy/mopidy/assignees{/user}","branches_url":"https://api.github.com/repos/mopidy/mopidy/branches{/branch}","tags_url":"https://api.github.com/repos/mopidy/mopidy/tags","blobs_url":"https://api.github.com/repos/mopidy/mopidy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mopidy/mopidy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mopidy/mopidy/git/refs{/sha}","trees_url":"https://api.github.com/repos/mopidy/mopidy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mopidy/mopidy/statuses/{sha}","languages_url":"https://api.github.com/repos/mopidy/mopidy/languages","stargazers_url":"https://api.github.com/repos/mopidy/mopidy/stargazers","contributors_url":"https://api.github.com/repos/mopidy/mopidy/contributors","subscribers_url":"https://api.github.com/repos/mopidy/mopidy/subscribers","subscription_url":"https://api.github.com/repos/mopidy/mopidy/subscription","commits_url":"https://api.github.com/repos/mopidy/mopidy/commits{/sha}","git_commits_url":"https://api.github.com/repos/mopidy/mopidy/git/commits{/sha}","comments_url":"https://api.github.com/repos/mopidy/mopidy/comments{/number}","issue_comment_url":"https://api.github.com/repos/mopidy/mopidy/issues/comments{/number}","contents_url":"https://api.github.com/repos/mopidy/mopidy/contents/{+path}","compare_url":"https://api.github.com/repos/mopidy/mopidy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mopidy/mopidy/merges","archive_url":"https://api.github.com/repos/mopidy/mopidy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mopidy/mopidy/downloads","issues_url":"https://api.github.com/repos/mopidy/mopidy/issues{/number}","pulls_url":"https://api.github.com/repos/mopidy/mopidy/pulls{/number}","milestones_url":"https://api.github.com/repos/mopidy/mopidy/milestones{/number}","notifications_url":"https://api.github.com/repos/mopidy/mopidy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mopidy/mopidy/labels{/name}","releases_url":"https://api.github.com/repos/mopidy/mopidy/releases{/id}","created_at":"2009-12-23T14:25:36Z","updated_at":"2015-05-06T03:55:47Z","pushed_at":"2015-05-05T23:05:23Z","git_url":"git://github.com/mopidy/mopidy.git","ssh_url":"git@github.com:mopidy/mopidy.git","clone_url":"https://github.com/mopidy/mopidy.git","svn_url":"https://github.com/mopidy/mopidy","homepage":"www.mopidy.com","size":27662,"stargazers_count":1903,"watchers_count":1903,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":225,"mirror_url":null,"open_issues_count":140,"forks":225,"open_issues":140,"watchers":1903,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1163"},"html":{"href":"https://github.com/mopidy/mopidy/pull/1163"},"issue":{"href":"https://api.github.com/repos/mopidy/mopidy/issues/1163"},"comments":{"href":"https://api.github.com/repos/mopidy/mopidy/issues/1163/comments"},"review_comments":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1163/comments"},"review_comment":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mopidy/mopidy/pulls/1163/commits"},"statuses":{"href":"https://api.github.com/repos/mopidy/mopidy/statuses/9f64a8719aae6e04876d80d3d0d32a04f82913f9"}}}}