{"action":"opened","issue":{"url":"https://api.github.com/repos/plt/racket/issues/1032","labels_url":"https://api.github.com/repos/plt/racket/issues/1032/labels{/name}","comments_url":"https://api.github.com/repos/plt/racket/issues/1032/comments","events_url":"https://api.github.com/repos/plt/racket/issues/1032/events","html_url":"https://github.com/plt/racket/issues/1032","id":104736777,"number":1032,"title":"raco pkg catalog-archive should be robust to errors in individual packages","user":{"login":"tonyg","id":17710,"avatar_url":"https://avatars.githubusercontent.com/u/17710?v=3","gravatar_id":"","url":"https://api.github.com/users/tonyg","html_url":"https://github.com/tonyg","followers_url":"https://api.github.com/users/tonyg/followers","following_url":"https://api.github.com/users/tonyg/following{/other_user}","gists_url":"https://api.github.com/users/tonyg/gists{/gist_id}","starred_url":"https://api.github.com/users/tonyg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tonyg/subscriptions","organizations_url":"https://api.github.com/users/tonyg/orgs","repos_url":"https://api.github.com/users/tonyg/repos","events_url":"https://api.github.com/users/tonyg/events{/privacy}","received_events_url":"https://api.github.com/users/tonyg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-03T16:43:31Z","updated_at":"2015-09-03T16:43:31Z","closed_at":null,"body":"If a package source is malformed (e.g. contains an invalid path, or simply contains bogus content), catalog-archive not only fails for that package, but for all remaining packages. This can be used as a DoS vector by adding a bogus package named \"aaaaaa\", for example.\r\n\r\nInstead, catalog-archive should catch exceptions from processing individual packages, log the error, and continue processing the remainder of the packages. The final exit code should reflect the success of the operation as a whole, of course. (Perhaps this suggests that the Racket routine implementing the process should raise an exception at the end if any of the packages had exceptions.)"}}