{"action":"created","issue":{"url":"https://api.github.com/repos/akka/akka/issues/20770","repository_url":"https://api.github.com/repos/akka/akka","labels_url":"https://api.github.com/repos/akka/akka/issues/20770/labels{/name}","comments_url":"https://api.github.com/repos/akka/akka/issues/20770/comments","events_url":"https://api.github.com/repos/akka/akka/issues/20770/events","html_url":"https://github.com/akka/akka/pull/20770","id":159816076,"number":20770,"title":"Parse URIs with many query string segments","user":{"login":"barnardb","id":151714,"avatar_url":"https://avatars.githubusercontent.com/u/151714?v=3","gravatar_id":"","url":"https://api.github.com/users/barnardb","html_url":"https://github.com/barnardb","followers_url":"https://api.github.com/users/barnardb/followers","following_url":"https://api.github.com/users/barnardb/following{/other_user}","gists_url":"https://api.github.com/users/barnardb/gists{/gist_id}","starred_url":"https://api.github.com/users/barnardb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barnardb/subscriptions","organizations_url":"https://api.github.com/users/barnardb/orgs","repos_url":"https://api.github.com/users/barnardb/repos","events_url":"https://api.github.com/users/barnardb/events{/privacy}","received_events_url":"https://api.github.com/users/barnardb/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-06-12T08:45:54Z","updated_at":"2016-06-12T08:45:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/akka/akka/pulls/20770","html_url":"https://github.com/akka/akka/pull/20770","diff_url":"https://github.com/akka/akka/pull/20770.diff","patch_url":"https://github.com/akka/akka/pull/20770.patch"},"body":"We are using akka-http to replace a legacy system that currently receives and processes some requests with on the order of 1000 query-string parameters. When we set `akka.http.parsing.max-uri-length` to an appropriate value, we get an `akka.parboiled2.ValueStackOverflowException` when the URI is being parsed. This is because the parser deliberately makes heavy use of the Parboiled parser’s value stack in order to efficiently construct the URI’s `Query` instance.\r\n\r\nThe proposed solution is to continue to use the existing efficient this stack-heavy approach as long as there is sufficient space on the value-stack, but to switch to a stack-friendly approach when necessary.\r\n\r\nAn alternative solution would have been to introduce a configuration variable named something like `akka.http.parsing.max-value-stack-depth`, which would be used similarly to `max-uri-length`, but this approach seems cleaner, given that URI length can already be used to avoid parsing overly complex URIs."},"comment":{"url":"https://api.github.com/repos/akka/akka/issues/comments/225417532","html_url":"https://github.com/akka/akka/pull/20770#issuecomment-225417532","issue_url":"https://api.github.com/repos/akka/akka/issues/20770","id":225417532,"user":{"login":"typesafehub-validator","id":5833735,"avatar_url":"https://avatars.githubusercontent.com/u/5833735?v=3","gravatar_id":"","url":"https://api.github.com/users/typesafehub-validator","html_url":"https://github.com/typesafehub-validator","followers_url":"https://api.github.com/users/typesafehub-validator/followers","following_url":"https://api.github.com/users/typesafehub-validator/following{/other_user}","gists_url":"https://api.github.com/users/typesafehub-validator/gists{/gist_id}","starred_url":"https://api.github.com/users/typesafehub-validator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/typesafehub-validator/subscriptions","organizations_url":"https://api.github.com/users/typesafehub-validator/orgs","repos_url":"https://api.github.com/users/typesafehub-validator/repos","events_url":"https://api.github.com/users/typesafehub-validator/events{/privacy}","received_events_url":"https://api.github.com/users/typesafehub-validator/received_events","type":"User","site_admin":false},"created_at":"2016-06-12T08:45:55Z","updated_at":"2016-06-12T08:45:55Z","body":"Hi @barnardb,\n\nThank you for your contribution! We really value the time you've taken to put this together.\n\nBefore we proceed with reviewing this pull request, please sign the Typesafe Contributors License Agreement:\n\n[http://www.lightbend.com/contribute/cla](http://www.lightbend.com/contribute/cla)"}}
{"actor":{"display_login":"typesafehub-validator"}}