{"action":"opened","issue":{"url":"https://api.github.com/repos/vert-x3/vertx-web/issues/935","repository_url":"https://api.github.com/repos/vert-x3/vertx-web","labels_url":"https://api.github.com/repos/vert-x3/vertx-web/issues/935/labels{/name}","comments_url":"https://api.github.com/repos/vert-x3/vertx-web/issues/935/comments","events_url":"https://api.github.com/repos/vert-x3/vertx-web/issues/935/events","html_url":"https://github.com/vert-x3/vertx-web/issues/935","id":327619599,"number":935,"title":"Http1xOrH2CHandler throws IllegalArgumentException when incorrect client data is parsed","user":{"login":"NavidMitchell","id":389891,"avatar_url":"https://avatars0.githubusercontent.com/u/389891?v=4","gravatar_id":"","url":"https://api.github.com/users/NavidMitchell","html_url":"https://github.com/NavidMitchell","followers_url":"https://api.github.com/users/NavidMitchell/followers","following_url":"https://api.github.com/users/NavidMitchell/following{/other_user}","gists_url":"https://api.github.com/users/NavidMitchell/gists{/gist_id}","starred_url":"https://api.github.com/users/NavidMitchell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NavidMitchell/subscriptions","organizations_url":"https://api.github.com/users/NavidMitchell/orgs","repos_url":"https://api.github.com/users/NavidMitchell/repos","events_url":"https://api.github.com/users/NavidMitchell/events{/privacy}","received_events_url":"https://api.github.com/users/NavidMitchell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-30T08:10:17Z","updated_at":"2018-05-30T08:10:17Z","closed_at":null,"author_association":"NONE","body":"### Version\r\n\r\n* vert.x core:\r\n3.5.1\r\n* vert.x web:\r\n3.5.1\r\n\r\n### Context\r\n\r\nErrors found in server logs. Looks to be a malicious or misconfigured client  \r\n\r\n### Do you have a reproducer?\r\n\r\nNot at this time\r\n\r\n### Steps to reproduce\r\nThis appears to be a side affect of the HTTP version support provided by netty.\r\nhttps://github.com/netty/netty/issues/6739\r\n\r\n### Extra\r\nHere is the complete message output and stack trace.\r\n\r\n**Message**\r\nAn exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.\r\n\r\n**Stack** \r\njava.lang.IllegalArgumentException: text is empty (possibly HTTP/0.9)\r\n\tat io.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:63)\r\n\tat io.netty.handler.codec.http.HttpRequestDecoder.createMessage(HttpRequestDecoder.java:87)\r\n\tat io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:219)\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489)\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428)\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n\tat io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:60)\r\n\tat io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935)\r\n\tat io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:141)\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)\r\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)\r\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)\r\n\tat io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n\tat java.lang.Thread.run(Thread.java:748)"}}
{"actor":{"display_login":"NavidMitchell"}}