niccholaspage / Fe

An economy plugin
17 stars 43 forks source link

MySQL Connection Cut Off #13

Closed SXRWahrheit closed 10 years ago

SXRWahrheit commented 11 years ago

2013-02-15 20:53:22 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 215,163 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. 2013-02-15 20:53:22 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2013-02-15 20:53:22 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 2013-02-15 20:53:22 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 2013-02-15 20:53:22 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3082) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2968) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3516) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.database.databases.SQLDB.loadAccountMoney(SQLDB.java:129) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.database.Database.getAccount(Database.java:44) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.API.getAccount(API.java:71) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.command.commands.BalanceCommand.onCommand(BalanceCommand.java:34) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.FeCommand.onCommand(FeCommand.java:125) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.FeCommand.sendDefaultCommand(FeCommand.java:81) 2013-02-15 20:53:22 [SEVERE] at org.melonbrew.fe.FeCommand.onCommand(FeCommand.java:86) 2013-02-15 20:53:22 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) 2013-02-15 20:53:22 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186) 2013-02-15 20:53:22 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 2013-02-15 20:53:22 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) 2013-02-15 20:53:22 [SEVERE] Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2529) 2013-02-15 20:53:22 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2979) 2013-02-15 20:53:22 [SEVERE] ... 30 more

I'm thinking that the plugin is trying to keep a connection open, and most hosts kill them after 60 seconds which is causing errors like players not receiving money for completed quests etc. It says that I don't have an account if that error is generated, but doing the command again shows that I do.

niccholaspage commented 11 years ago

What version of Fe is this?

SXRWahrheit commented 11 years ago

0.6, as is available on DevBukkit.

On 2/15/2013 1:37 PM, Nicholas wrote:

What version of Fe is this?

— Reply to this email directly or view it on GitHub https://github.com/niccholaspage/Fe/issues/13#issuecomment-13629452.

niccholaspage commented 11 years ago

Hmm. Fe 0.6 should automatically reopen any closed SQL connection. Can you please test the latest development build to see if this problem still occurs?

SXRWahrheit commented 11 years ago

Sure thing, link?

On 2/15/2013 1:42 PM, Nicholas wrote:

Hmm. Fe 0.6 should automatically reopen any closed SQL connection. Can you please test the latest development build to see if this problem still occurs?

— Reply to this email directly or view it on GitHub https://github.com/niccholaspage/Fe/issues/13#issuecomment-13629667.

niccholaspage commented 11 years ago

http://s2.meloncraft.com:8080/job/Fe/

SXRWahrheit commented 11 years ago

Which version of Bukkit is this build dependent on? I'm using the latest recommended.

2013-02-15 22:29:20 [SEVERE] Could not pass event PluginEnableEvent to Fe v0.7-SNAPSHOT org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:35) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:464) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugin(CraftServer.java:282) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.enablePlugins(CraftServer.java:264) at net.minecraft.server.v1_4_R1.MinecraftServer.j(MinecraftServer.java:321) at net.minecraft.server.v1_4_R1.MinecraftServer.e(MinecraftServer.java:300) at net.minecraft.server.v1_4_R1.MinecraftServer.a(MinecraftServer.java:259) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:149) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.ClassCastException: org.melonbrew.fe.loaders.FeBukkitLoader cannot be cast to org.melonbrew.fe.Fe at org.melonbrew.fe.Economy_Fe$EconomyServerListener.onPluginEnable(Economy_Fe.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 14 more

On 2/15/2013 1:43 PM, Nicholas wrote:

http://s2.meloncraft.com:8080/job/Fe/

— Reply to this email directly or view it on GitHub https://github.com/niccholaspage/Fe/issues/13#issuecomment-13629717.

niccholaspage commented 11 years ago

Sorry, there was an issue in the code. Can you download the latest dev build and test it now? The issue should be fixed.

SXRWahrheit commented 11 years ago

2013-02-16 00:14:27 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 542,645 milliseconds ago. The last packet sent successfully to the server was 36 milliseconds ago. 2013-02-16 00:14:27 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2013-02-16 00:14:27 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 2013-02-16 00:14:27 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 2013-02-16 00:14:27 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3082) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2968) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3516) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273) 2013-02-16 00:14:27 [SEVERE] at com.niccholaspage.nSQL.query.SelectQuery.execute(SelectQuery.java:55) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.database.databases.SQLDB.loadAccountMoney(SQLDB.java:157) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.database.Database.getAccount(Database.java:45) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.API.getAccount(API.java:76) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.command.commands.BalanceCommand.onCommand(BalanceCommand.java:35) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.FeCommand.onCommand(FeCommand.java:126) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.FeCommand.sendDefaultCommand(FeCommand.java:82) 2013-02-16 00:14:27 [SEVERE] at org.melonbrew.fe.FeCommand.onCommand(FeCommand.java:87) 2013-02-16 00:14:27 [SEVERE] at com.niccholaspage.Metro.base.command.BukkitCommandExecutor.onCommand(BukkitCommandExecutor.java:23) 2013-02-16 00:14:27 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) 2013-02-16 00:14:27 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186) 2013-02-16 00:14:27 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) 2013-02-16 00:14:27 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) 2013-02-16 00:14:27 [SEVERE] Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2529) 2013-02-16 00:14:27 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2979) 2013-02-16 00:14:27 [SEVERE] ... 32 more

2013-02-16 00:14:27 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'money' in plugin Fe v0.7-SNAPSHOT at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514) at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980) at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898) at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853) at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113) at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at org.melonbrew.fe.database.databases.SQLDB.loadAccountMoney(SQLDB.java:159) at org.melonbrew.fe.database.Database.getAccount(Database.java:45) at org.melonbrew.fe.API.getAccount(API.java:76) at org.melonbrew.fe.command.commands.BalanceCommand.onCommand(BalanceCommand.java:35) at org.melonbrew.fe.FeCommand.onCommand(FeCommand.java:126) at org.melonbrew.fe.FeCommand.sendDefaultCommand(FeCommand.java:82) at org.melonbrew.fe.FeCommand.onCommand(FeCommand.java:87) at com.niccholaspage.Metro.base.command.BukkitCommandExecutor.onCommand(BukkitCommandExecutor.java:23) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more

On 2/15/2013 2:45 PM, Nicholas wrote:

Sorry, there was an issue in the code. Can you download the latest dev build and test it now? The issue should be fixed.

— Reply to this email directly or view it on GitHub https://github.com/niccholaspage/Fe/issues/13#issuecomment-13632240.

SXRWahrheit commented 11 years ago

2013-02-18 23:24:46 [SEVERE] Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. 2013-02-18 23:24:46 [SEVERE] at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2529) 2013-02-18 23:24:46 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2979) 2013-02-18 23:24:46 [SEVERE] ... 32 more 2013-02-18 23:24:46 [SEVERE] Could not pass event PlayerLoginEvent to Fe v0.7-SNAPSHOT org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:35) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_4_R1.PlayerList.attemptLogin(PlayerList.java:278) at net.minecraft.server.v1_4_R1.PendingConnection.d(PendingConnection.java:121) at net.minecraft.server.v1_4_R1.PendingConnection.c(PendingConnection.java:45) at net.minecraft.server.v1_4_R1.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44) at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:29) at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at org.melonbrew.fe.database.databases.SQLDB.loadAccountMoney(SQLDB.java:159) at org.melonbrew.fe.database.Database.getAccount(Database.java:45) at org.melonbrew.fe.database.Database.createAccount(Database.java:59) at org.melonbrew.fe.API.createAccount(API.java:68) at org.melonbrew.fe.listeners.FeBukkitPlayerListener.onPlayerLogin(FeBukkitPlayerListener.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)

Tons of stuff like this, lag on join.

On 2/15/2013 2:45 PM, Nicholas wrote:

Sorry, there was an issue in the code. Can you download the latest dev build and test it now? The issue should be fixed.

— Reply to this email directly or view it on GitHub https://github.com/niccholaspage/Fe/issues/13#issuecomment-13632240.

niccholaspage commented 11 years ago

Hmm. I'll be looking into this soon. It should of been fixed but I'll check it out again.

SXRWahrheit commented 11 years ago

It's interrupting MobArena since it's dependent on fees and prizes - fix would be awesome <3

I'm on IRC if you want to test with me, and my server's IP is mc.summaxr.com.

SXRWahrheit commented 11 years ago

Any progress? Let me know if I can help. Need this fixed. :(

SXRWahrheit commented 11 years ago

Still waiting on this, need proper economy stuff not interrupting other plugins :(

niccholaspage commented 11 years ago

Sorry, I've been pretty busy. I'll try to look into it soon.

SXRWahrheit commented 11 years ago

Good progress yesterday, hop on mumble or highlight me on IRC when you'd like to test more. :)

SXRWahrheit commented 11 years ago

You around tonight? Would love to get this fixed :)

SXRWahrheit commented 11 years ago

Any chance we can fix this today? Would be awesome to have it working for the week.

SXRWahrheit commented 11 years ago

Still hoping for a fix :(

SXRWahrheit commented 11 years ago

Bump :(

niccholaspage commented 11 years ago

Sorry, I've been busy. I'm still looking into it but it's a hard issue to fix.

SXRWahrheit commented 11 years ago

I'm guessing a couple hours at most on IRC talking with other devs will get it sorted :)

SXRWahrheit commented 11 years ago

Is there anything I can do as far as providing connections goes to help get this sorted faster? It's limiting my ability to implement a lot of new features.

SXRWahrheit commented 11 years ago

Any progress?

niccholaspage commented 11 years ago

I'm going to start writing for Fe again. I've really been trying to fix this but it's pretty hard to find the issue. I've been looking for a few weeks now.

SXRWahrheit commented 11 years ago

Like I've said before, you should pop on IRC and use it frequently - people are often very willing to help and while I don't know java myself there are plenty who do and can give advice if you're stuck on certain aspects. :)

niccholaspage commented 11 years ago

I got on IRC yesterday, didn't get much help. I'll be checking again tomorrow.

SXRWahrheit commented 11 years ago

Poke me next time, I was in the Bahamas. I'll help you ask the right questions. :)

SXRWahrheit commented 11 years ago

Have you got Skype? We could chat through there.

SXRWahrheit commented 11 years ago

Are you planning on fixing this ever?

SXRWahrheit commented 11 years ago

You may find this of use:

https://github.com/krinsdeath/killsuite/blob/master/src/main/java/net/krinsoft/killsuite/databases/MySQLDatabase.java#L217

Krinsdeath is usually on esper and probably willing to answer any questions you have.

SXRWahrheit commented 11 years ago

https://github.com/krinsdeath/JobSuite/blob/master/src/main/java/net/krinsoft/jobsuite/db/Database.java#L78

Puremin0rez commented 11 years ago

This really needs to be fixed, like ASAP.

SXRWahrheit commented 11 years ago

I could not agree more.

Puremin0rez commented 11 years ago

@SXRWahrheit

What's the worst that this error causes? I've seen it a few times in console, but the plugin still appears to work fine afterwards. Just checking before moving to another economy plugin.

SXRWahrheit commented 11 years ago

If the connection has been dropped, the next attempt to use anything with MySQL fails. Allow me to present a few cases:

MobArena users are fighting a boss. It takes a while and is quite difficult, so there's a great reward of 200 gold! Oh no, the MySQL connection has dropped and that gold is never assigned. Not only that, but the arena won't proceed because it can't pay out. A user completes a multi-stage quest to kill hundreds of monsters. The quest is marked as complete but the reward is not received so the user cannot be paid.

Stuff like that. You can sort of account for this by spamming /money whenever you know you're gonna get paid soon or before you turn in a quest but that's ridiculous. At the very least you could just store pending transactions to .sql or something...

Puremin0rez commented 11 years ago

@SXRWahrheit

Gotcha. To be honest, not sure why it's taken over 3 months to fix something like this. It's seems pretty trivial, although i personally have never dabbled in MySQL. I mean, isn't it as simple as doing some sort of keep alive ping to ensure the DB stays connected?

@niccholaspage

Cant you just look at another plugins source to see how they do MySQL? I'm sure there are plenty of good examples that could be used - considering Fe is the only plugin I've ever had an issue with relating to this error.

As much as I hate this error, Fe Economy is still the only simplistic and decent economy plugin there is. Would be a shame to have to change.

SXRWahrheit commented 11 years ago

Yes. What he said.

Puremin0rez commented 11 years ago

https://github.com/niccholaspage/Fe/blob/d484cfffe8df777cdda918a5f233f1feec047eb4/src/org/melonbrew/fe/database/databases/SQLDB.java#L50

If you can't find a legitimate fix, couldn't you just call "checkConnection()" every say, 30-60 seconds and verify the connection is always up? It appears the method works, but the problem is that after it times out for so long someone needs to issue the command just to have it fail then work again until it times out.

niccholaspage commented 11 years ago

checkConnection() is called when a query needs to be executed. It will open the database if closed. The issue only happens once and then the database opens up - keeping the database alive wouldn't help as the host Wahrheit is using closes the database after a minute.

SXRWahrheit commented 11 years ago

As do most hosts.

SXRWahrheit commented 11 years ago

Sorry, most shared hosts - which is sufficient for most webhosting and thus becomes most hosts.

Puremin0rez commented 11 years ago

Well I'm not even using a "host" - I am running a clean install of MySQL on a Dedicated Server running CentOS.

None of my other plugins have this disconnection issue, so its possible the defaults kill the connection after 60 seconds but why would this plugin be the only one effected by it? It seems like the other plugins handle it gracefully as I've never seen any MySQL errors before this.

jjacobson commented 11 years ago

Any updates on this problem?

SXRWahrheit commented 11 years ago

lol

Puremin0rez commented 11 years ago

^ I think that's the best explanation.

Really though, I don't get it as much anymore since my server is quite popular and it never usually gets a chance to die, but over night, like normal, connection dies and first transaction in the morning fails.

SXRWahrheit commented 11 years ago

If only I were so lucky. We get activity in spurts and users freak out when they see the internal server error.

niccholaspage commented 10 years ago

This hopefully has been fixed by this commit: https://github.com/niccholaspage/Fe/commit/3c5affbfc3321eb9a59267ca6c015e949a2408a2