tasgon / observable

See what's lagging your server. 20M+ downloads on CurseForge
https://www.curseforge.com/minecraft/mc-mods/observable
Mozilla Public License 2.0
93 stars 9 forks source link

Observable doesn't run when players are connected via Velocity Proxy #97

Closed LevyWilson closed 1 month ago

LevyWilson commented 1 month ago

We've been discussing this in the Discord early September. I'm running an All The Mods 10 server on 1.21.1 through a Velocity proxy, 3.3.0 snapshot 416. When attempting to run an Observable profiler through the GUI, it appears to work on the player's side, but the server terminal spits out this:

[01:48:35] [Server thread/ERROR] [minecraft/BlockableEventLoop]: Error executing task on Server java.util.concurrent.CompletionException: java.lang.UnsupportedOperationException: Payload observable:channel-s2c may not be sent to the client! at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {re:mixin} at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?] {re:mixin} at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?] {} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.TickTask.run(TickTask.java:18) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,re:computing_frames,re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:872) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:170) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:855) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:849) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:111) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:825) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:712) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] {re:mixin} Caused by: java.lang.UnsupportedOperationException: Payload observable:channel-s2c may not be sent to the client! at TRANSFORMER/neoforge@21.1.47/net.neoforged.neoforge.network.registration.NetworkRegistry.checkPacket(NetworkRegistry.java:445) ~[neoforge-21.1.47-universal.jar%23371!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.network.ServerCommonPacketListenerImpl.send(ServerCommonPacketListenerImpl.java:178) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins/common/nochatreports.mixins.json:server.MixinServerCommonPacketListenerImpl from mod nochatreports,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.network.ServerCommonPacketListenerImpl.send(ServerCommonPacketListenerImpl.java:173) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins/common/nochatreports.mixins.json:server.MixinServerCommonPacketListenerImpl from mod nochatreports,pl:mixin:A} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.transformers.PacketSink.lambda$ofPlayers$1(PacketSink.java:39) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading,pl:runtimedistcleaner:A} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.lambda$collectPackets$7(NetworkAggregator.java:155) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.transformers.SplitPacketTransformer.outbound(SplitPacketTransformer.java:188) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.collectPackets(NetworkAggregator.java:149) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.NetworkManager.collectPackets(NetworkManager.java:137) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.NetworkManager.sendToPlayers(NetworkManager.java:163) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A} at TRANSFORMER/observable@5.4.2/observable.server.Profiler.runWithDuration(Profiler.java:237) ~[observable-5.4.2.jar%23546!/:?] {re:mixin,re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$1.invoke(Observable.java:70) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$1.invoke(Observable.java:63) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$$inlined$register$1.invoke(Observable.java:61) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$$inlined$register$1.invoke(Observable.java:61) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.net.BetterChannel._init_$lambda$1(BetterChannel.java:54) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.lambda$registerC2SReceiver$3(NetworkAggregator.java:108) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.transformers.PacketTransformer$1.inbound(PacketTransformer.java:47) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.lambda$registerC2SReceiver$4(NetworkAggregator.java:102) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.forge.NetworkManagerImpl$1.lambda$registerC2S$0(NetworkManagerImpl.java:62) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/neoforge@21.1.47/net.neoforged.neoforge.network.handling.MainThreadPayloadHandler.lambda$handle$0(MainThreadPayloadHandler.java:16) ~[neoforge-21.1.47-universal.jar%23371!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:60) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] {} ... 13 more [01:48:35] [Server thread/ERROR] [ne.ne.ne.ne.re.NetworkRegistry/]: Failed to process a synchronized task of the payload: observable:channel-c2s java.util.concurrent.CompletionException: java.lang.UnsupportedOperationException: Payload observable:channel-s2c may not be sent to the client! at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {re:mixin} at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?] {re:mixin} at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?] {} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.TickTask.run(TickTask.java:18) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,re:computing_frames,re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:872) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:170) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:855) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:849) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:111) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:825) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:712) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:267) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:A} at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] {re:mixin} Caused by: java.lang.UnsupportedOperationException: Payload observable:channel-s2c may not be sent to the client! at TRANSFORMER/neoforge@21.1.47/net.neoforged.neoforge.network.registration.NetworkRegistry.checkPacket(NetworkRegistry.java:445) ~[neoforge-21.1.47-universal.jar%23371!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.network.ServerCommonPacketListenerImpl.send(ServerCommonPacketListenerImpl.java:178) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins/common/nochatreports.mixins.json:server.MixinServerCommonPacketListenerImpl from mod nochatreports,pl:mixin:A} at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.network.ServerCommonPacketListenerImpl.send(ServerCommonPacketListenerImpl.java:173) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins/common/nochatreports.mixins.json:server.MixinServerCommonPacketListenerImpl from mod nochatreports,pl:mixin:A} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.transformers.PacketSink.lambda$ofPlayers$1(PacketSink.java:39) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading,pl:runtimedistcleaner:A} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.lambda$collectPackets$7(NetworkAggregator.java:155) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.transformers.SplitPacketTransformer.outbound(SplitPacketTransformer.java:188) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.collectPackets(NetworkAggregator.java:149) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.NetworkManager.collectPackets(NetworkManager.java:137) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.NetworkManager.sendToPlayers(NetworkManager.java:163) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A} at TRANSFORMER/observable@5.4.2/observable.server.Profiler.runWithDuration(Profiler.java:237) ~[observable-5.4.2.jar%23546!/:?] {re:mixin,re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$1.invoke(Observable.java:70) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$1.invoke(Observable.java:63) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$$inlined$register$1.invoke(Observable.java:61) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.Observable$init$$inlined$register$1.invoke(Observable.java:61) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/observable@5.4.2/observable.net.BetterChannel._init_$lambda$1(BetterChannel.java:54) ~[observable-5.4.2.jar%23546!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.lambda$registerC2SReceiver$3(NetworkAggregator.java:108) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.transformers.PacketTransformer$1.inbound(PacketTransformer.java:47) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.impl.NetworkAggregator.lambda$registerC2SReceiver$4(NetworkAggregator.java:102) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/architectury@13.0.6/dev.architectury.networking.forge.NetworkManagerImpl$1.lambda$registerC2S$0(NetworkManagerImpl.java:62) ~[architectury-13.0.6-neoforge.jar%23399!/:?] {re:classloading} at TRANSFORMER/neoforge@21.1.47/net.neoforged.neoforge.network.handling.MainThreadPayloadHandler.lambda$handle$0(MainThreadPayloadHandler.java:16) ~[neoforge-21.1.47-universal.jar%23371!/:?] {re:classloading} at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:60) ~[server-1.21.1-20240808.144430-srg.jar%23370!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.BlockableEventLoopMixin from mod modernfix,pl:mixin:A} at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] {} ... 13 more

Observable will also not run when there are other players online as well, giving a "An unexpected error occurred trying to execute that command" error.

Additional mods I'm running to support the Proxy are a Neoforge port of Bungeeforge https://github.com/proferabg/BungeeForge/tree/1.21-neo and Neoforwarding https://modrinth.com/mod/neoforwarding

tasgon commented 1 month ago

Velocity was a red herring. This was fixed by e22fcde091b4c37fecb74aa01425c6dc06c4e5b8.