EssentialsX

EssentialsX

2M Downloads

Found UUID x but player already has a UUID x. Not replacing UUID in usermap.

antibitcoin opened this issue ยท 39 comments

commented

Type of bug

Error in console

/ess version output

I know you would ask if server is online or offline mode, the server is offline mode because I am using waterfall, the waterfall it self is online mode, and I am using Bungeeguard and ip tables to prevent non premium players from joining my back end, so there is no way these users could have double UUIDS, the only thing I can think of is NPCs "Citizens 2" because for a fact when someone donates they get an NPC that looks like them to show on spawn, but well most of the users showing this error when they login never donated.
I am confused but tying to give leads.

Error log (if applicable)

No response

Bug description

[16:39:11 INFO]: [Essentials] Found UUID f51219be-6192-4bbe-a849-55a063b71643 for player vietnamfortnite, but player already has a UUID (a5e7bf09-bf65-4ced-8a30-1069756ba265). Not replacing UUID in usermap.
java.lang.RuntimeException: null
at com.earth2me.essentials.UserMap.trackUUID(UserMap.java:141) ~[?:?]
at com.earth2me.essentials.UserMap.load(UserMap.java:168) ~[?:?]
at com.earth2me.essentials.UserMap.load(UserMap.java:30) ~[?:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[patched_1.17.1.jar:git-Paper-96]
at com.earth2me.essentials.UserMap.getUser(UserMap.java:118) ~[?:?]
at com.earth2me.essentials.BalanceTopImpl.calculateBalanceTopMap(BalanceTopImpl.java:32) ~[?:?]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:100) ~[patched_1.17.1.jar:git-Paper-96]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[patched_1.17.1.jar:git-Paper-96]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.17.1.jar:git-Paper-96]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]

Steps to reproduce

When user logs in this keeps showing on console spamming.

Expected behaviour

Expected not to show errors on console

Actual behaviour

[16:39:11 INFO]: [Essentials] Found UUID f51219be-6192-4bbe-a849-55a063b71643 for player vietnamfortnite, but player already has a UUID (a5e7bf09-bf65-4ced-8a30-1069756ba265). Not replacing UUID in usermap.
java.lang.RuntimeException: null
at com.earth2me.essentials.UserMap.trackUUID(UserMap.java:141) ~[?:?]
at com.earth2me.essentials.UserMap.load(UserMap.java:168) ~[?:?]
at com.earth2me.essentials.UserMap.load(UserMap.java:30) ~[?:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) ~[patched_1.17.1.jar:git-Paper-96]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) ~[patched_1.17.1.jar:git-Paper-96]
at com.earth2me.essentials.UserMap.getUser(UserMap.java:118) ~[?:?]
at com.earth2me.essentials.BalanceTopImpl.calculateBalanceTopMap(BalanceTopImpl.java:32) ~[?:?]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:100) ~[patched_1.17.1.jar:git-Paper-96]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[patched_1.17.1.jar:git-Paper-96]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.17.1.jar:git-Paper-96]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]

commented

it happens less frequent, mostly only during startup of the server, than sometimes when people logging in.

commented

Same problem here

commented

Same here

commented

Yes, we understand it's an issue...

Please at least try what was mentioned here: #4342 (comment)

commented

Yes, we understand it's an issue...

Please at least try what was mentioned here: #4342 (comment)

tried, still the same problem

commented

same issue

commented

As of date April the eight of 2022, after updating PAPI ECLOUD UPDATE ALL, because there was an update needed for one or two plugins, the console started spamming and is was related to ExxentialsX. Even on a server that has no CITIZENS2 the console spams... So, I hope the link with PlaceholderAPI will be made and maybe this is the root source of the problem, but I don't know, I am not a programmer, just a maintainer....

commented

Hey, if they don't care, where do we find an alternative? Went from Essentials to EssentialsX because they gave up on us and now EsX stops caring?
I see, no obligation to the cause, just crap then?

commented

This issue is pending a large overhaul of how EssentialsX stores user data, which will take some time to properly test, document and integrate. We could rush together some hacky fixes like past maintainers have done, but that would only lead to more issues for people down the line. This will be fixed when we have the time to properly review the changes needed.

commented

I still have the same issue...

commented

This issue is pending a large overhaul of how EssentialsX stores user data, which will take some time to properly test, document and integrate. We could rush together some hacky fixes like past maintainers have done, but that would only lead to more issues for people down the line. This will be fixed when we have the time to properly review the changes needed.

We had so much positive use from EssentialsX that I am not gonna switch to something else if it is not very necessary or only when the plugin is abandoned and noone will pick things up.
I am fully aware that a lot of people who develope and maintain plugins for the MC community are not being paid, and there are also some who sell a copy of it through premium - which won't make them run away after being paid, as I have noticed on a few occaisions - but the main fact is, we, and I mean the most of serverowners who make no profit at all like we do, have very much use of plugins that help maintain our servers, so our thanks go in your direction, team EssentialsX.

I hope the overhaul will help getting your fans back.

Thanks.

commented

Your usermap is polluted with incorrect UUIDs. Could you try stopping your server, renaming plugins/Essentials/usermap.csv to usermap.csv.bak, and starting your server back up?

[16:39:11 INFO]: [Essentials] Found UUID f51219be-6192-4bbe-a849-55a063b71643 for player vietnamfortnite, but player already has a UUID (a5e7bf09-bf65-4ced-8a30-1069756ba265). Not replacing UUID in usermap.

Delete: UUID f51219be-6192-4bbe-a849-55a063b71643

In the essentials/userdata folder and the issue will be resolved

commented

Thank you for your help. but..
Players with that issue already quit playing long ago, never seen this issue again.
closing this issue for now. as I see the dev have pulled it into a todo list
#4581

commented

Do I understand that this issue will be resolved? Because it is not the fact that users do not return often on servers, it is the simple fact that this occurred on our server when we updated Essentials from 2.20.0-dev 4 to 2.20.0-dev 5 so in our case it is not something that 'just happened a long time ago' but very recent, and as far as I can see, it makes no sense because my userdata is also in that list and I hate to tell people that by deleting the userfolder that their inventory is gone.
I do hope you can resolve this, because the userdata is fine as far as I can see... But, never mind if you don't, we decided to step to a different plugin on that server, because errors on the console gives an indication that there is either something wrong on the server, the MC version we use (PAPER) or another plugin that did not withstand the test of time, sadly this happens often.

commented

This issue has not yet been resolved. I plan to review the usermap rewrite PR as soon as I have a large block of time to review it, but this won't be possible for a while.

In the mean time, I'm reopening this issue to avoid confusion. Manually deleting usermap files is a workaround, not a proper solution, and this issue remains valid until EssentialsX is able to resolve these automatically.

commented

@MrKiller01 There are no changes in 2.20-dev+5 related to user data. In addition, EssentialsX's userdata folder has no relation to inventories or other server data. Your issue likely cropped up due to interactions with other plugins that are out of our control. We will mitigate these in the future, but please be patient.

commented

As stated in my previous comments, we intend to fix this as soon as possible. There is no ETA for the usermap rewrite PR.

commented

I noticed the -not to userinventories related- before I actually knew for sure. Sorry. Hope you can fix this in some time in the future though, our other servers are still running essentials.
Might it be helpful to say that I updated on that peticular server the papi ecloud service for essentials? On the other server where I have no errors, an update is still pending for papi, but now I know this one has a very large user base and I will not let this huge list of errors fill the logs every time we restart it.

commented

As long I have checked all the users with this problem in my server were people who changed of uuid (semi premium things). The problem is this is generating a memory leak and consuming all cpu because is processing the usermap constantly.

This needs to be fixed or give a temporal solution because I can't be everyday deleting files manually.

commented

Just to add I am encountering this error as well. Latest version of Paper (1.19 #29) and EssentialsX (2.19.4)

commented

Just to add I am encountering this error as well. Latest version of Paper (1.19 #29) and EssentialsX (2.19.4)

Just adding this is happening to me as well in 1.19. Following this thread now. It's annoyance more than anything.

image

commented

I have the same problem

[04:01:40] [Craft Scheduler Thread - 15 - PlaceholderAPI/INFO]: [Essentials] Found UUID 8c63fa76-b317-3a4d-9c2b-95748a402232 for player BlackFenria, but player already has a UUID (ef5a9d18-6773-422c-b8c7-91f191ef8c82). Not replacing UUID in usermap.
java.lang.RuntimeException: null
	at com.earth2me.essentials.UserMap.trackUUID(UserMap.java:155) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.UserMap.load(UserMap.java:182) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.UserMap.load(UserMap.java:30) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache.get(LocalCache.java:3966) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950) ~[guava-31.0.1-jre.jar:?]
	at com.earth2me.essentials.UserMap.getUser(UserMap.java:129) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.Essentials.getUser(Essentials.java:928) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.api.Economy.getUserByUUID(Economy.java:112) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.api.Economy.getMoneyExact(Economy.java:158) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.economy.vault.VaultEconomyProvider.getBalance(VaultEconomyProvider.java:116) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.extendedclip.papi.expansion.vault.VaultEcoHook.getBalance(VaultEcoHook.java:223) ~[?:?]
	at com.extendedclip.papi.expansion.vault.BalTopTask.run(BalTopTask.java:52) ~[?:?]
	at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.jar:git-Paper-36]
	at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.19.jar:git-Paper-36]
	at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.19.jar:?]
	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) ~[?:?]
[04:01:40] [Craft Scheduler Thread - 15 - PlaceholderAPI/INFO]: [Essentials] Found UUID a06fad66-fb24-372b-abbe-1613c16242e8 for player Bockiiii, but player already has a UUID (e42498cc-5cf4-4239-8fde-3c7066713191). Not replacing UUID in usermap.
java.lang.RuntimeException: null
	at com.earth2me.essentials.UserMap.trackUUID(UserMap.java:155) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.UserMap.load(UserMap.java:182) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.UserMap.load(UserMap.java:30) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache.get(LocalCache.java:3966) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989) ~[guava-31.0.1-jre.jar:?]
	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950) ~[guava-31.0.1-jre.jar:?]
	at com.earth2me.essentials.UserMap.getUser(UserMap.java:129) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.Essentials.getUser(Essentials.java:928) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.api.Economy.getUserByUUID(Economy.java:112) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.api.Economy.getMoneyExact(Economy.java:158) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.earth2me.essentials.economy.vault.VaultEconomyProvider.getBalance(VaultEconomyProvider.java:116) ~[EssentialsX-2.19.5-dev+21-ff80338.jar:?]
	at com.extendedclip.papi.expansion.vault.VaultEcoHook.getBalance(VaultEcoHook.java:223) ~[?:?]
	at com.extendedclip.papi.expansion.vault.BalTopTask.run(BalTopTask.java:52) ~[?:?]
	at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.jar:git-Paper-36]
	at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.19.jar:git-Paper-36]
	at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.19.jar:?]
	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) ~[?:?]
commented

I will be happy if this just gave an warning instead of the whole stack trace on my console

commented

No offense here intended people, but we handle 5 servers, and not all of them give these error messages, but a little over two months ago we decided to step off essentials and went to Serversystem on just one server. We are still using Essentials, so, this one change was just to test things. Seems we had to learn a few other commands, but it is worth pulling this off, I hope the Essentials team will continue work on this stupid problem (stupid as in: it really is not a beauty to see all the time)

commented

What would you estimate the timeframe be until this issue is fixed possibly?

commented

This regularly happens to me too. And it's hard manually going and deleting the UUID's every few days for every player that it happens to.

commented

What would you estimate the timeframe be until this issue is fixed possibly?

@DebuffPvP We've been working on an overhaul of EssentialsX's user tracking system for a few months. The current experimental builds are relatively stable, and if you want to test these builds, see #4581 (remember to take regular backups if you do). Otherwise you can wait for 2.20 development builds, which will include the userdata rewrite.

commented

I also had this problem, and with basically over 60k unique joins on my server it was literally eating my server performances so the only way was to reset the server data.

commented

Closing this, it's been fixed in the 2.20 dev builds

commented

Your usermap is polluted with incorrect UUIDs. Could you try stopping your server, renaming plugins/Essentials/usermap.csv to usermap.csv.bak, and starting your server back up?

commented

I have done that, the issue is still there, done it before posting here as I found this solution on another similiar issue about poisned uuids.
didn't fix my problem, which is so wierd. it just generates a new file, than from the first boot up the issue start again.

commented

Your usermap is polluted with incorrect UUIDs. Could you try stopping your server, renaming plugins/Essentials/usermap.csv to usermap.csv.bak, and starting your server back up?

Any other solution or tool to fix the pollution.

commented

@antibitcoin I had the same issue. I just deleted all the userfiles in question. (The files matching the second UUID mentioned in the error message) and then at the end deleting usermap entirely. None of the usernames sounded familiar, so I didn't have any worries in deleting their data.

Not sure if there is any other way to fix it, but this was just my own solution :)

commented

This problem is happening to me when I am starting the server.

commented

This happens to me also, after updating to 1.17.1 together with latest EssX dev build

commented

@antibitcoin I had the same issue. I just deleted all the userfiles in question. (The files matching the second UUID mentioned in the error message) and then at the end deleting usermap entirely. None of the usernames sounded familiar, so I didn't have any worries in deleting their data.

Not sure if there is any other way to fix it, but this was just my own solution :)

I have also tried that with no use, it keeps coming back, I still think it might be citizens or something like that.
or maybe the new minecraeft minecrosoft auth system, not sure if that out yet tho.

commented

or maybe the new [Minecraft] [Microsoft] auth system,

This wouldn't affect UUIDs nor usernames.