Proxy does not handle duplicate scoreboard teams across connections
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 752
- Forks
- 307
- Avg merge
- 15h 48m
- Merged PRs (30d)
- 7
Description
[23:25:54] [Netty Worker IO Thread #23/ERROR]: [/1.156.19.57:50127|Uber_Elite] <-> DownstreamBridge <-> [LegendBender] - encountered exception
java.lang.IllegalArgumentException: Team §7§0§l[§9§lP_Mc already exists in this scoreboard
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at net.md_5.bungee.api.score.Scoreboard.addTeam(Scoreboard.java:73) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at net.md_5.bungee.connection.DownstreamBridge.handle(DownstreamBridge.java:208) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at net.md_5.bungee.protocol.packet.Team.handle(Team.java:122) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:103) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:421) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:321) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.13-SNAPSHOT:a4b5eaf:238]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with net.md_5.bungee.connection.DownstreamBridge.handle, then trace Team.handle and net.md_5.bungee.api.score.Scoreboard.addTeam, which the stack trace identifies as the failure path. Reproduce duplicate team updates across connections and determine how the proxy should handle an already-existing team without raising this exception; done means the connection continues without the reported error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100