LuckPerms

LuckPerms

41.4k Downloads

MySQL "No operations allowed after connection closed" error

akiraic opened this issue ยท 6 comments

commented

Hello,

As the title says, only luckperms is having this problem from 1 to 3 hours after I start the server. The error message appears around that window of time. No other errors. Just keeps repeating itself again after 1 to 3 hours between each message.

Yes, I already followed the "Storage system errors" in the Wiki.
I double checked the MySQL wait_timeout and it is 28800 (default). I didn't change the default in config.yml either.
Here is the storage section from my config file
And the Console error log

Sumary:

  1. My setup has Spigot 1.13 latest build and LuckPerms 4.3.73
  2. Error happens in production (several plugins) and in test setup (luckperms only)
  3. Error also happens with new MySQL databases
  4. Startup connection works fine
  5. Also tested maximum-lifetime set to half (900000ms, 15min)

I found the autoReconecct property for MySQL, not sure how LuckPerms handle that tho.

Any ideas? Thank you in advance.

commented

Does it happen to be a MariaDB server?
Because if so, you should use the MariaDB storage type. And also it has several configs. I'm never sure which config it actually uses, so I'd check all.

commented

Is MySQL 5.7+, in this case. I was using MariaDB before, it was fine (no errors).

commented

Appreciate you taking the time to read the wiki before making an issue! <3

I'm not sure either. These errors aren't from LuckPerms, and I don't know enough about the way MySQL / the MySQL driver works to be able to give much more advice.

As it's not an LP issue, there's really nothing I can do. I guess in terms of practical advice, you could:

  • Attempt to set the lifetime even lower
  • Switch back to MariaDB?? (if it worked before then perhaps that's gonna be the easiest way to resolve the problem)
commented

Bear in mind also that timeout errors can be a result of dodgy network connections - if the link between the servers is bad that could result in connections timing out.

commented

Well, around 17 plugins use that database, and all of them are fine. Only LuckPerms is having the issue.
My database logs show no signs of LuckPerms trying to reconnect.

As you said, you don't know enough about MySQL, this could mean you may have left out some important configuration (or correction) while setting up the JDBC? Several other plugins that I use have the autoReconect option in their code for MySQL.

The issue is closed, no need for me to keep poking. Just asking kindly to not disregard issues like that because it is not impossible (or unusual) to miss something like that.

Just keep your eyes open for any leads, alright? <3

Thanks for the hard work.

EDIT: tested 5 minutes lifetime. No change. Less than that would be ridiculous and, altho it doesn't prove a problem with the plugin itself, it does mean it can be improved? MySQL have several properties that can be used to prevent those problems and kill them on the source (including some problems listed on the Wiki page). This also means less tickets opened ๐Ÿฅ‡

commented

Absolutely, I'm definitely not infallible - far from it. ๐Ÿ˜‰

The reason I closed the issue is because as far as I can tell, there's nothing I can immediately change or identify within LuckPerms itself to resolve the issue.

The JDBC settings are fairly standard, and I'm using a very popular (and I would say generally well regarded) 3rd party library to handle connection pooling. I believe auto reconnect functionality is handled by HikariCP in this instance.

If anything else comes up, or if anyone has any ideas, please feel free to comment and I'll reopen the issue. (or you can!)