nijikokun / iConomy3

Please, if you fork iConomy only do so if you are really fixing or adding something useful!
7 stars 1 forks source link

[BUG][4.1] SQLite Not Saving (intermittent) #8

Closed ShadowDrakken closed 13 years ago

ShadowDrakken commented 13 years ago

Looks like iConomy is not saving correctly. The cause appears to be the use of persistent connections. Persistent connections are also causing problems with MySQL if the MySQL server times out (the JDBC doesn't handle the timeout correctly)

iDatabase.java has Connection.getConnection() but it never calls Connection.close() meaning it never releases the connection when its done.

[SEVERE] java.sql.SQLException: [SQLITE_BUSY]  The database file is locked (database is locked)
[SEVERE]    at org.sqlite.DB.newSQLException(DB.java:383)
[SEVERE]    at org.sqlite.DB.newSQLException(DB.java:387)
[SEVERE]    at org.sqlite.DB.execute(DB.java:339)
[SEVERE]    at org.sqlite.DB.executeUpdate(DB.java:363)
[SEVERE]    at org.sqlite.PrepStmt.executeUpdate(PrepStmt.java:85)
[SEVERE]    at com.nijiko.coelho.iConomy.net.iDatabase.executeQuery(iDatabase.java:64)
[SEVERE]    at com.nijiko.coelho.iConomy.system.Account.save(Account.java:94)
[SEVERE]    at com.nijiko.coelho.iConomy.entity.iPlayerListener.showGrant(iPlayerListener.java:172)
[SEVERE]    at com.nijiko.coelho.iConomy.entity.iPlayerListener.onPlayerCommand(iPlayerListener.java:522)
[SEVERE]    at com.nijiko.coelho.iConomy.iConomy.onCommand(iConomy.java:133)
[SEVERE]    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:19)
[SEVERE]    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:77)
[SEVERE]    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:177)
[SEVERE]    at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:638)
[SEVERE]    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:601)
[SEVERE]    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:595)
[SEVERE]    at net.minecraft.server.Packet3Chat.a(SourceFile:24)
[SEVERE]    at net.minecraft.server.NetworkManager.a(SourceFile:230)
[SEVERE]    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:70)
[SEVERE]    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
[SEVERE]    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:351)
[SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:266)
[SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
[INFO] Player 50's account had 20.0 grant to it.
[INFO] ShadowDrakken tried command: stop
[INFO] CONSOLE: Stopping the server..
[INFO] Stopping server
[INFO] Goodbye world!
[SEVERE] java.sql.SQLException: cannot commit transaction - SQL statements in progress
[SEVERE]    at org.sqlite.DB.throwex(DB.java:370)
[SEVERE]    at org.sqlite.DB.ensureAutoCommit(DB.java:435)
[SEVERE]    at org.sqlite.DB.execute(DB.java:332)
[SEVERE]    at org.sqlite.DB.executeUpdate(DB.java:363)
[SEVERE]    at org.sqlite.PrepStmt.executeUpdate(PrepStmt.java:85)
[SEVERE]    at com.nijiko.coelho.iConomy.net.iDatabase.executeQuery(iDatabase.java:64)
[SEVERE]    at com.nijiko.coelho.iConomy.system.Account.save(Account.java:94)
[SEVERE]    at com.nijiko.coelho.iConomy.iConomy.onDisable(iConomy.java:119)
[SEVERE]    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:142)
[SEVERE]    at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:438)
[SEVERE]    at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:199)
[SEVERE]    at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:193)
[SEVERE]    at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:72)
[SEVERE]    at net.minecraft.server.MinecraftServer.g(MinecraftServer.java:221)
[SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:296)
[SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
[INFO] [iConomy] Saved accounts and has been disabled.
nijikokun commented 13 years ago

I will look into it, is this still an existing issue?

ShadowDrakken commented 13 years ago

this is already fixed in 4.2 --> http://github.com/coelho/iConomy-4