Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Exception while starting flashback proxy

未关闭
#24 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
30/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
java
领域
backend

调研方向

从 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 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

linkedin/flashback 的其他 Issue

查看 linkedin/flashback 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。