grandwazir / BanHammer

BanHammer is a plugin for Bukkit that allows you to kick and ban players.
http://grandwazir.github.com/BanHammer
GNU General Public License v3.0
12 stars 9 forks source link

MySQL connection closed... #18

Closed fromgate closed 12 years ago

fromgate commented 12 years ago
Please help us. Sometimes every banned player could login to server. Error message in log:

2012-04-22 14:16:26 [SEVERE] Could not pass event PlayerLoginEvent to BanHammer org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at net.minecraft.server.ServerConfigurationManager.attemptLogin(ServerConfigurationManager.java:227) at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:102) at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:41) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:61) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: javax.persistence.PersistenceException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver. at com.avaje.ebeaninternal.server.transaction.JdbcTransaction.rollback(JdbcTransaction.java:614) at com.avaje.ebeaninternal.server.transaction.JdbcTransaction.rollback(JdbcTransaction.java:595) at com.avaje.ebeaninternal.server.core.BeanRequest.rollbackTransIfRequired(BeanRequest.java:107) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1475) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at name.richardson.james.bukkit.banhammer.BanRecord.findFirstByName(BanRecord.java:49) at name.richardson.james.bukkit.banhammer.BanHandler.getPlayerBan(BanHandler.java:87) at name.richardson.james.bukkit.banhammer.BannedPlayerListener.onPlayerLogin(BannedPlayerListener.java:85) at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ... 9 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) at com.mysql.jdbc.Util.getInstance(Util.java:382) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1213) at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3101) at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4710) at com.avaje.ebeaninternal.server.lib.sql.PooledConnection.rollback(PooledConnection.java:752) at com.avaje.ebeaninternal.server.transaction.JdbcTransaction.rollback(JdbcTransaction.java:607) ... 20 more Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 60,373,428 milliseconds ago. The last packet sent successfully to the server was 60,373,428 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3348) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1967) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273) at com.avaje.ebeaninternal.server.lib.sql.ExtendedPreparedStatement.executeQuery(ExtendedPreparedStatement.java:150) at com.avaje.ebeaninternal.server.query.CQuery.prepareBindExecuteQuery(CQuery.java:416) at com.avaje.ebeaninternal.server.query.CQueryEngine.findMany(CQueryEngine.java:198) at com.avaje.ebeaninternal.server.query.DefaultOrmQueryEngine.findMany(DefaultOrmQueryEngine.java:104) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.findList(OrmQueryRequest.java:344) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1469) ... 17 more Caused by: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(Unknown Source) at java.net.SocketOutputStream.write(Unknown Source) at java.io.BufferedOutputStream.flushBuffer(Unknown Source) at java.io.BufferedOutputStream.flush(Unknown Source) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3329) ... 28 more

grandwazir commented 12 years ago

This means that there is a problem between the plugin and your MySQL server. I would suggest either switching to SQLite (make sure to export and then import your bans before you do that) or troubleshoot why the connection is timing out. If you are unsure how to do this ask whoever hosts your server for you. I use MySQL myself and have not encountered that error with the default settings.

grandwazir commented 12 years ago

Assuming this is fixed due to inactivity and closing the issue.