EssentialsX

EssentialsX

2M Downloads

Players Losing Balances

Opened this issue ยท 26 comments

commented

What is happening:

I'm getting reports of players randomly losing their balances on my server. Some days I get multiple reports, other days I get none. Each and every time its the same thing, though. Someone did /bal and discovered they suddenly had $0. I've had people report previously having anywhere from $1k to $100k.

More information:

I've had this issue on my server for about a month now and can not figure out what is causing it. About once a day I get a report from a player on my server that their balance was reset. It seems to be completely random who will be affected by this bug. I've found no correlation with how much money they had, their rank, or play style. I've had people report losing just $1000 up to $100,000. Every time, though, whatever balance they had is reset to $0.

This has been extremely difficult to track down because of its inconsistency and lack of any errors or information in the logs. I haven't even been able to narrow down what might be causing this because I have no idea when these players last checked their balances to figure out what happened between then and now.

What I do know is that we didn't have this issue until recently and have been running EssentialsX for years. I also tried running an older version and didn't have any reports of the problem for two weeks. I then updated to the latest release and sure enough I'm getting reports of lost balances only a couple days after. Because of how inconsistent the bug was to begin with I can't be certain that running the old version actually fixed anything.

The version I tried reverting back to was 456. While running this version I did not have any balances reset. Builds 461 + DID experience this bug. I haven't tested anything in between these two because I'd have to run the server for weeks on each build to be certain the bug isn't present, and unfortunately we can't go back because of the /worth bug that is now present with all older builds.

Server information:

I'm running git-Paper-1024 currently. I update paper daily and have consistently had this problem with every version.

Plugins: http://pastebin.com/JiJFhnMW

I'm hoping by reporting this someone can guide me in how to narrow this down or even figure out what recent change/update could cause this.

commented

I've also had this wish similar/exact things.

commented

I'm using Spigot 1.11.2 latest build and build 460 and not seeing any issues with balances. I've just downloaded 463, so I'll be testing it this week.

commented

Only two commits that modified payment structure:

dadc6b2

5f83766

I can't see anything wrong by glancing at them, so the issue may be very subtle. If it is occurring in 461, it's the latter commit (which is funnily enough, smaller). In the meantime, I'll make a branch/build that includes a backport of the worth fix but no payment changes for affected users.

commented

I'll run it and see if I still have balances reported missing. Thank you for doing this.

commented

I've tested on build 463 and do not see balances being removed at least from my account on the test server. I let 24 hours go by as well as restarting the server. I am an OP level 4 so could that be skewing the results? I was also able to execute the command and confirm it, giving myself money - balance never changed, but even still I would have expected a warning like "You can not pay yourself with your own money!"
2017-01-10 15_32_49-minecraft 1 11 2
I'm not a huge fan of "CONFIRM" being shown like that. A simple message like:
You should now use /pay confirm to complete the payment.

commented

I'm not a huge fan of "CONFIRM" being shown like that. A simple message like

You can edit the messages as you wish. Move the messages_en.yml from within the .jar file into your Essentials data folder and edit.

commented

I see messages_en.properties but I don't see a messages_en.yml - am I not looking in the right jar file(EssentialsX-2.0.1.jar) or is there another page that describes how to create one for EssentialsX ?

commented

Sorry, messages_en.properties is the correct file.

commented

@vemacs I just got a report today from a new player that they lost their balance. That confirms that the issue, on my server, is still present with that branch. I'm really confused as to what could possibly be causing this...

@TWSSYesterday Could you share your plugins list to see what is similar between our servers?

commented

@SioWolf Is the issue still occurring with that branch? If it isn't, we can narrow down the changes quite a bit.

commented

@SioWolf I've just changed to using https://www.spigotmc.org/resources/essentials-mysql-storage-extension.25673/ and am still getting this. I'm mainly having this issue on reboot. I've set the save task to be low on the MySQL plugin so we can see if it'll help that way. Still on #463 Also @SioWolf if you would like to PM me on Bukkit Dev/Twitter then we can talk about it.

commented

Just to confirm, I still have this issue, am setting late-bind back to false on the off chance.

commented

I'm not using that plugin and don't have players losing money. Could it be that plugin and not EssentialsX ? I'm using Spigot on Windows 10 Pro and build 465 of EssentialsX. No one is losing balances so it sounds more like the MySQL connection doing something bad. :-)

commented

CleanroomGenerator, AsyncWorldEditInjector, CoreProtect, , ClearLag, ChatControl, SkyblockEco, WorldBorder, BuycraftX, Votifier, ProtocolLib, AsyncWorldEdit, BlocksHub, ConditionalCommands, GAListener, Vault, AAC, ChestCommands, WorldEdit, ,Essentials, , LiteBans, , Citizens, PlotSquared, WorldGuard, EssentialsSpawn, , Multiverse-Core, GriefPrevention, HolographicDisplays, TitleManager
@SioWolf I run zPerms and am now using https://www.spigotmc.org/resources/essentials-mysql-storage-extension.25673/ to see if that can somehow fix this.

commented

Could always try dumping balances to the console whenever they gets modified.

commented

@TWSSYesterday According to your list you aren't running any of the plugins that I thought would be the cause of this. I thought for sure we'd both be running one of the plugins I have that hooks into the Essentials economy. Then again, I'm not sure your list is accurate because you listed "ConditionalCommands" which is a plugin I DON'T have, and you also listed "SkyblockEco" which is a custom plugin of ours that I'm fairly certain you don't have.

@md678685 How would I go about doing this?

commented

I just got few players reporting this and can confirm they didn't spend cash on anything (Checked transactions and last backup of their data), interesting, I've checked logs for possible errors, doesen't seem there is any. I am using b437 with latest TacoSpigot 1.8.8

commented

Wonder why it's only popping up recently. There hasn't been any changes to the user caching mechanism at all. The only other cause would be filesystem corruption.

commented

@smmmadden I am not using that MySQL plugin, so thats not the cause.

@TWSSYesterday Please compare my plugins list, linked above, to yours and report all of the plugins we are both running.

commented

I found the cause of the problem on my server. We are running the askyblock plugin and had it configured to reset players balances when they reset their islands. This worked great while we only had economy in skyblock, and we forgot to turn it off when we started using Essentials economy in the survival world instead.

commented

@SioWolf This was a suggestion for an addition to /ess debug's info; it could be achieved by logging balances whenever a method is called to change the balance.

commented

Glad to hear you found the issue @SioWolf :-)

commented

Is this still an issue for people?

commented

In my comment above I mentioned that I found the issue and it was unrelated to EssentialsX. This can be closed.

commented

Apologies for the oversight - closing this issue.