-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Invalid components are sent to the player #2935
Comments
Are you able to further look into that? Because Bungee never serializes 'value' without an 'action': |
If it can happen without any plugins - Maybe its not json created by the ChatComponentAPI, but prevoiusly serialized json sent by minecraft itself? For example contained in Books, on Signs or something else? |
can confirm this issue occurs with /plugins, and any plugin with hover events |
Still need a way to reproduce |
I've the same issue that I report on spigot jira : https://hub.spigotmc.org/jira/browse/SPIGOT-6012 |
When using PlugWoman 1.2.1 + Redlib 3.2.5 can create this error 100% when doing /pl causes this component error. I had to remove this off my server. |
I guess this issue is Spigot side issue. Some users have exactly the same issue without using Bungeecord... |
It's still at fault from the BungeeCord API's chat components. Sadly there doesn't seem to be any way to reproduce even remotely reliably; some have never encountered it, while others encounter it easily. From what I'm able to see, it's an environment issue, but I don't quite get what in that environment can cause it when some reproduce it with no plugins whatsoever. Linked issue: https://hub.spigotmc.org/jira/browse/SPIGOT-6056 |
This might not be related but in net.md_5.bungee.api.chat.ItemTag.java, could getAsJsonPrimative().getAsString() be failing when nbt includes new UUID Int-Array with a ';' and throwing the exception in gson? In the past the deserialization was just converting toString() and removing quotes. |
I have no crash nor issue just a warning in console (does NOT save to the log) related to this? AdoptOpenJDK: jdk-11.0.8.10-hotspot
The error shows up once after a server startup when first triggered.
I can only get the warning to display this way and it will not display again until the server is rebooted. |
That warning is completely unrelated and can be safely ignored. Also it is intended that this only shows up once per startup. |
Minecraft 1.16.x changed how UUIDs were represented in NBT, for example it is possible to give a custom skull with a texture using a command like: I'm wondering if gson is used to parse NBT of an itemstack (i.e. as used in serialization in the BungeeCord Chat API), could it fail to parse the Int-Array properly due to the semicolon and thus cause other unintended problems since the ItemTag serializer is included with all the other registeredTypeAdapters in the ComponentSerializer? Also, shouldn't this scenario be added to the testItemParse() of the ComponentsTest unit test? |
Hmm, i tried updating in the ComponentTest to try to test serialization with new UUID but was unable to produce any errors. But still looks like the ComponentTest needs some updating in this regards, but its beyond my pay-grade. |
When i updated to 1.16.3 the issue hasn't shown up for a long while. Then, suddenly, it's back. Kicking people for malformed json text, A restart fixed the issue |
Nobody wants to take care of this bug, but it has been afflicting my server since MONTHS after updating from 1.15 to 1.16. Only a restart of the Paper/Spigot server can temporarily fix this, and yeah - this happens also on spigot, not just paper. Happens also in Tunity, that is a fork of Paper. I updated my Java version but nothing changed. I updated it today again, let's see what will happen. This starts happening after 24+ hours of /uptime. The error does not pop up on fresh start, but things start breaking over time. Every almost single plugin that generates colored/decorated text, eventually breaks and starts spitting out this exception. Spoke with plugin devs, they all say they aren't doing anything wrong. |
Nobody takes care of this bug, because nobody got clear reproduction steps. The reproduction step: "Let a server run 24 hours and this bug will happen" is no valid reproduction step as the code does not take runtime or time into account at all. Additionally running paper or any other fork of spigot and not spigot itself will not get you support here anyway. |
The real issue with this bug is just that. We can't test how it's happening, because it takes so long to show up that we can't even think about disabling plugins one by one to see if the issue is caused by a plugin, because it would require us to stay with each plugin turned off for at least 1 day or more.
Of course it doesn't! That would be hilarious 😂 But bugs can (unwillingly). I don't really know how spigot/paper/bungeecord work, but I feel like there is a memory leak or something like that somewhere in the json parser stuff, and it slowly accumulates ""stuff"" (note the double quotation mark) until, well, it explodes and can't parse anything correctly anymore. That's a feeling tho, 100% inaccurate. I updated to All I did was download Is this the correct way to update java on ubuntu? Is this the latest version? |
No that is not correctly installed. |
Could this be related to the issue? From time to time I get errors like this in console:
My java -version increased by .1 tho, and no, I have an older ubuntu instllation. Anyways ill use spigot forums, thanks |
Updated to OpenJDK 15, yeah - the issue is still here. Just took some days to come back. Honestly, idk how to provide more info. If someone can tell me how to help, I am willing to help. |
A possible culprit was identified, please check it out and report back in a couple days or a week if the issue appears again or is gone after following the workaround provided: Plugins found so far which might cause this bug: DiscordSRV, NuVotifier |
What behaviour is expected:
Only valid components being sent to the player.
What behaviour is observed:
The player being kicked by invalid components being sent.
Steps/models to reproduce:
So far? No idea. We (a few people in an MC-related Discord) do seem to have spotted the issue (which has been right in front of us the whole time), though.
The client does not remove any fields when parsing, which means the
JsonParseException
thrown and shown to the player is untouched:More images
The components here are missing the
action
field, which is supposed to be present on both types of events. Given we only see arrays, it's safe to assume these are hover events; we've yet to see reports of what appears to be click events, from what I can find.Plugin list:
Sometimes some, sometimes many, sometimes none. This has been reported with zero plugins, and with many plugins where two cases have had absolutely none mutual.
The text was updated successfully, but these errors were encountered: