Aelysium-Group / rusty-connector

A player and server connection manager for Velocity based Minecraft Networks!
GNU General Public License v3.0
77 stars 17 forks source link

Party breaks after leader disconnects. #31

Closed TheDeafCreeper closed 1 year ago

TheDeafCreeper commented 1 year ago

I was a party leader then had a game crash, after the game we were in ended, whenever other players in the party tried to join a server or use any party command the following error occurred.

[03:34:59 WARN] [io.lettuce.core.protocol.CommandHandler]: null Unexpected exception during request: java.lang.StackOverflowError
java.lang.StackOverflowError: null
        at java.lang.ref.Reference.clear(Reference.java:389) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:54) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]

       ...1008 more times
nathan-i-martin commented 1 year ago

Can you try reproducing this by disconnecting normally? I want to see if this is caused by a normal logout too or if it's only when you crash.

TheDeafCreeper commented 1 year ago

It also happens when the leader disconnects normally.

Also found more errors (this is what was actually happening when commands were run)

[03:35:34 INFO]: Exception occurred while running command for LogicalPlus
java.util.concurrent.CompletionException: java.lang.RuntimeException: Unable to invoke command party leave for [connected player] LogicalPlus (/71.10.69.15:56014)
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.RuntimeException: Unable to invoke command party leave for [connected player] LogicalPlus (/71.10.69.15:56014)
        at com.velocitypowered.proxy.command.VelocityCommandManager.executeImmediately0(VelocityCommandManager.java:239) ~[proxy.jar:3.2.0-SNAPSHOT (git-bda1430d-b259)]
        at com.velocitypowered.proxy.command.VelocityCommandManager.lambda$executeImmediatelyAsync$1(VelocityCommandManager.java:264) ~[proxy.jar:3.2.0-SNAPSHOT (git-bda1430d-b259)]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
        ... 3 more
Caused by: java.lang.NullPointerException: Cannot invoke "com.velocitypowered.api.proxy.Player.sendMessage(net.kyori.adventure.text.Component)" because "partyMember" is null
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.lambda$leave$1(Party.java:85) ~[?:?]
        at java.util.Vector.forEach(Vector.java:1359) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leave(Party.java:85) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.commands.CommandParty.lambda$create$10(CommandParty.java:239) ~[?:?]
        at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:262) ~[proxy.jar:3.2.0-SNAPSHOT (git-bda1430d-b259)]
        at com.velocitypowered.proxy.command.VelocityCommandManager.executeImmediately0(VelocityCommandManager.java:226) ~[proxy.jar:3.2.0-SNAPSHOT (git-bda1430d-b259)]
        at com.velocitypowered.proxy.command.VelocityCommandManager.lambda$executeImmediatelyAsync$1(VelocityCommandManager.java:264) ~[proxy.jar:3.2.0-SNAPSHOT (git-bda1430d-b259)]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
        ... 3 more
TheDeafCreeper commented 1 year ago

And also

[03:35:48 ERROR]: Couldn't pass DisconnectEvent to rustyconnector-velocity
java.lang.StackOverflowError: null
        at java.lang.ref.Reference.clear(Reference.java:389) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:54) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.setLeader(Party.java:55) ~[?:?]
        at group.aelysium.rustyconnector.plugin.velocity.lib.parties.Party.leader(Party.java:40) ~[?:?]
nathan-i-martin commented 1 year ago

https://github.com/Aelysium-Group/rusty-connector/issues/31#issuecomment-1674178374 and https://github.com/Aelysium-Group/rusty-connector/issues/31#issue-1846150668 are caused by the same for what it's worth.

TheDeafCreeper commented 1 year ago

Yeah figured the stack overflows are the same, may as well just document where they started.

nathan-i-martin commented 1 year ago

yeah, it's much appreciated