Exception while starting flashback proxy
还没有人认领这个 Issue。
评估
调研方向
从 FlashbackAdminResource.startFlashback 开始,然后沿着堆栈跟踪跟进 FlashbackRunner.start 和 ProxyServer.start。在端口 5555 被占用的情况下重现 curl 请求,并确定对于所报告的 bind 失败应有的行为;只有在该行为得到明确规定并验证后,issue 才算完成。
由索引模型根据 Issue 内容生成。
描述
while doing curl "http://localhost:1234/admin?action=startFlashback" --data '{
"sceneMode": "record",
"sceneName": "test1",
"matchRule": "matchEntireRequest",
"scenePath": "/tmp",
"proxyHost": "localhost",
"proxyPort": "5555"
}'
we get:
{"exceptionClass":"com.linkedin.restli.server.RestLiServiceException","message":"INTERNAL SERVER ERROR","stackTrace":"com.linkedin.restli.server.RestLiServiceException [HTTP Status:500]: INTERNAL SERVER ERROR\n\tat com.linkedin.restli.internal.server.RestLiMethodInvoker.doInvoke(RestLiMethodInvoker.java:317)\n\tat com.linkedin.restli.internal.server.RestLiMethodInvoker.access$100(RestLiMethodInvoker.java:62)\n\tat com.linkedin.restli.internal.server.RestLiMethodInvoker$RestLiRequestFilterChainCallbackImpl.onSuccess(RestLiMethodInvoker.java:424)\n\tat com.linkedin.restli.internal.server.filter.RestLiRequestFilterChain.onRequest(RestLiRequestFilterChain.java:72)\n\tat com.linkedin.restli.internal.server.RestLiMethodInvoker.invoke(RestLiMethodInvoker.java:198)\n\tat com.linkedin.restli.server.RestLiServer.handleResourceRequest(RestLiServer.java:337)\n\tat com.linkedin.restli.server.RestLiServer.doHandleRequest(RestLiServer.java:227)\n\tat com.linkedin.restli.server.BaseRestServer.handleRequest(BaseRestServer.java:61)\n\tat com.linkedin.restli.server.DelegatingTransportDispatcher.handleRestRequest(DelegatingTransportDispatcher.java:61)\n\tat com.linkedin.r2.filter.transport.DispatcherRequestFilter.onRestRequest(DispatcherRequestFilter.java:68)\n\tat com.linkedin.r2.filter.FilterChainIterator$FilterChainRestIterator.doOnRequest(FilterChainIterator.java:131)\n\tat com.linkedin.r2.filter.FilterChainIterator$FilterChainRestIterator.doOnRequest(FilterChainIterator.java:117)\n\tat com.linkedin.r2.filter.FilterChainIterator.onRequest(FilterChainIterator.java:57)\n\tat com.linkedin.r2.filter.transport.ServerQueryTunnelFilter.onRestRequest(ServerQueryTunnelFilter.java:58)\n\tat com.linkedin.r2.filter.FilterChainIterator$FilterChainRestIterator.doOnRequest(FilterChainIterator.java:131)\n\tat com.linkedin.r2.filter.FilterChainIterator$FilterChainRestIterator.doOnRequest(FilterChainIterator.java:117)\n\tat com.linkedin.r2.filter.FilterChainIterator.onRequest(FilterChainIterator.java:57)\n\tat com.linkedin.r2.filter.message.rest.RestFilter.onRestRequest(RestFilter.java:50)\n\tat com.linkedin.r2.filter.FilterChainIterator$FilterChainRestIterator.doOnRequest(FilterChainIterator.java:131)\n\tat com.linkedin.r2.filter.FilterChainIterator$FilterChainRestIterator.doOnRequest(FilterChainIterator.java:117)\n\tat com.linkedin.r2.filter.FilterChainIterator.onRequest(FilterChainIterator.java:57)\n\tat com.linkedin.r2.filter.FilterChainImpl.onRestRequest(FilterChainImpl.java:86)\n\tat com.linkedin.r2.filter.transport.FilterChainDispatcher.handleRestRequest(FilterChainDispatcher.java:70)\n\tat com.linkedin.r2.transport.http.server.HttpDispatcher.handleRequest(HttpDispatcher.java:95)\n\tat com.linkedin.r2.transport.http.server.HttpDispatcher.handleRequest(HttpDispatcher.java:70)\n\tat com.linkedin.r2.transport.http.server.HttpNettyServer$RestHandler.channelRead0(HttpNettyServer.java:173)\n\tat com.linkedin.r2.transport.http.server.HttpNettyServer$RestHandler.channelRead0(HttpNettyServer.java:136)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)\n\tat io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:32)\n\tat io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:329)\n\tat io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:36)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)\n\tat io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: io.netty.channel.ChannelException: Failed to bind to: localhost:5555\n\tat com.linkedin.mitm.proxy.ProxyServer.start(ProxyServer.java:87)\n\tat com.linkedin.flashback.smartproxy.FlashbackRunner.start(FlashbackRunner.java:99)\n\tat com.linkedin.flashback.FlashbackAdminResource.startFlashback(FlashbackAdminRe* Curl_http_done: called premature == 0Connection #0 to host localhost left intact source.java:80tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat com.linkedin.restli.internal.server.RestLiMethodInvoker.doInvoke(RestLiMethodInvoker.java:243)\n\t... 34 more\nCaused by: java.net.BindException: Address already in use\n\tat sun.nio.ch.Net.bind0(Native Method)\n\tat sun.nio.ch.Net.bind(Net.java:433)\n\tat sun.nio.ch.Net.bind(Net.java:425)\n\tat sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)\n\tat sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)\n\tat io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)\n\tat io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:485)\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1081)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:502)\n\tat io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:487)\n\tat io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:904)\n\tat io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)\n\tat io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLo
- 主要语言
- Java
- 星标
- 580
- 派生
- 48
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
linkedin/flashback 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 45/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
难度 5/5 一周以上 新手友好度 15/100
-
难度 1/5 1 小时以内 新手友好度 25/100
-
难度 5/5 一周以上 新手友好度 15/100
查看 linkedin/flashback 的全部 Issue
相似的 Issue
-
backend
难度 2/5 1-3 小时 新手友好度 76/100
bcgov/nr-forest-client#2524 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 85/100
Sinytra/ForgifiedFabricAPI#298 ·
-
难度 2/5 1-3 小时 新手友好度 67/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 74/100
维护者通常 1 天内回复
-
team:Lumberjack
难度 2/5 1-3 小时 新手友好度 76/100
OpenLiberty/open-liberty#35998 ·
维护者通常 1 天内回复