BanManagement / BanManager

A plugin for Minecraft to manage punishments and moderate more effectively
https://banmanagement.com/
Other
117 stars 89 forks source link

BM might freeze deadlock CB on shutdown #541

Closed EvilOlaf closed 8 years ago

EvilOlaf commented 8 years ago

I recently updated my MySQLd while CB was running. Not the smartest idea, I know but it was at the development machine, so I did not care.

Anyway, took a while till the MySQLd was up again and meanwhile BM tried 10 times to reconnect and gave up. So far, so good.

Then I decided to restart the server in order to make all database using plugins and stuff work properly again.

[...]
[07:26:17] [Server thread/INFO]: [BanManager] Disabling BanManager v5.7.2
[07:26:18] [Craft Scheduler Thread - 2102/WARN]: java.sql.SQLException: Could not build prepared-query iterator for class me.confuser.banmanager.data.PlayerMuteData
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:968)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:533)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:528)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.QueryBuilder.iterator(QueryBuilder.java:389)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.storage.PlayerMuteStorage.findMutes(PlayerMuteStorage.java:172)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.runnables.MuteSync.newMutes(MuteSync.java:30)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.runnables.MuteSync.run(MuteSync.java:22)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.runnables.Runner.run(Runner.java:28)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.lang.Thread.run(Thread.java:745)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 10 times. Giving up.
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2239)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2168)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at sun.reflect.GeneratedConstructorAccessor183.newInstance(Unknown Source)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:664)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:208)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:252)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadWriteConnection(JdbcPooledConnectionSource.java:136)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadOnlyConnection(JdbcPooledConnectionSource.java:111)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:964)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        ... 12 more
[07:26:18] [Craft Scheduler Thread - 2102/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2186)
[07:26:18] [Craft Scheduler Thread - 2102/WARN]:        ... 28 more
[07:26:36] [Craft Scheduler Thread - 2101/WARN]: java.sql.SQLException: Could not build prepared-query iterator for class me.confuser.banmanager.data.PlayerMuteData
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:968)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:533)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:528)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.QueryBuilder.iterator(QueryBuilder.java:389)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.storage.PlayerMuteStorage.findMutes(PlayerMuteStorage.java:172)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.runnables.MuteSync.newMutes(MuteSync.java:30)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.runnables.MuteSync.run(MuteSync.java:22)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.runnables.Runner.run(Runner.java:28)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.lang.Thread.run(Thread.java:745)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 10 times. Giving up.
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2239)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2168)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at sun.reflect.GeneratedConstructorAccessor183.newInstance(Unknown Source)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:664)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:208)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:252)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadWriteConnection(JdbcPooledConnectionSource.java:136)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadOnlyConnection(JdbcPooledConnectionSource.java:111)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:964)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        ... 12 more
[07:26:36] [Craft Scheduler Thread - 2101/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2186)
[07:26:36] [Craft Scheduler Thread - 2101/WARN]:        ... 28 more
[07:26:57] [Craft Scheduler Thread - 2074/WARN]: java.sql.SQLException: Could not build prepared-query iterator for class me.confuser.banmanager.data.PlayerMuteData
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:968)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:533)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:528)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.QueryBuilder.iterator(QueryBuilder.java:389)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.storage.PlayerMuteStorage.findMutes(PlayerMuteStorage.java:172)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.runnables.MuteSync.newMutes(MuteSync.java:30)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.runnables.MuteSync.run(MuteSync.java:22)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.runnables.Runner.run(Runner.java:28)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.lang.Thread.run(Thread.java:745)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 10 times. Giving up.
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2239)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2168)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at sun.reflect.GeneratedConstructorAccessor183.newInstance(Unknown Source)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:664)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:208)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:252)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadWriteConnection(JdbcPooledConnectionSource.java:136)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadOnlyConnection(JdbcPooledConnectionSource.java:111)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:964)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        ... 12 more
[07:26:57] [Craft Scheduler Thread - 2074/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2186)
[07:26:57] [Craft Scheduler Thread - 2074/WARN]:        ... 28 more
[07:27:15] [Craft Scheduler Thread - 2073/WARN]: java.sql.SQLException: Could not build prepared-query iterator for class me.confuser.banmanager.data.PlayerMuteData
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:968)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:533)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.iterator(BaseDaoImpl.java:528)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.QueryBuilder.iterator(QueryBuilder.java:389)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.storage.PlayerMuteStorage.findMutes(PlayerMuteStorage.java:172)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.runnables.MuteSync.newMutes(MuteSync.java:30)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.runnables.MuteSync.run(MuteSync.java:22)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.runnables.Runner.run(Runner.java:28)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.lang.Thread.run(Thread.java:745)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 10 times. Giving up.
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2239)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2168)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at sun.reflect.GeneratedConstructorAccessor183.newInstance(Unknown Source)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:664)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:208)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcConnectionSource.makeConnection(JdbcConnectionSource.java:252)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadWriteConnection(JdbcPooledConnectionSource.java:136)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.jdbc.JdbcPooledConnectionSource.getReadOnlyConnection(JdbcPooledConnectionSource.java:111)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.stmt.StatementExecutor.buildIterator(StatementExecutor.java:243)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at me.confuser.banmanager.internal.ormlite.dao.BaseDaoImpl.createIterator(BaseDaoImpl.java:964)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        ... 12 more
[07:27:15] [Craft Scheduler Thread - 2073/WARN]: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at sun.reflect.GeneratedConstructorAccessor444.newInstance(Unknown Source)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.Util.getInstance(Util.java:382)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2186)
[07:27:15] [Craft Scheduler Thread - 2073/WARN]:        ... 28 more

Had to send a SIGTERM to the java process to stop it. Still on BM5.7.2. I know there was a switch at the MySQL backend, so this might not be happen in this form again but maybe interesting to know anyways. Spigot 1.8.8

confuser commented 8 years ago

There's not really very much I can do to handle this scenario, albeit rare.

EvilOlaf commented 8 years ago

Maybe BM should not give up reconnecting to the database if it was connected once since server startup. Could be delayed by a few seconds between each try though.

confuser commented 8 years ago

Perhaps, but then that causes other problems. For those running with checkOnJoin, does BM then fallback to memory checks? Do we still allow players to join if they're not banned in memory? What about new bans that are then not synced? We're then letting players join that shouldn't, and so on.

EvilOlaf commented 8 years ago

I actually do not really understand why it might be a good idea to give up connecting to the database especially when checkOnJoin is used.

The only problem I see here is that no one ingame (with proper permission node) gets a warning that the database connection has been dropped and could not be reestablished yet (check your logs!).

confuser commented 8 years ago

The problem is, the connection will timeout in X seconds, which will prevent players from joining, with checkOnJoin.

If the plugin fails on startup to connect, it can't pull all the ban data into memory, meaning banned players would be allowed to join, muted players would be allowed to talk etc. This is the main reason for having a stable MySQL connection.

EvilOlaf commented 8 years ago

I am aware that having a stable connection to the database is important in almost all cases software need something to store its data. It is also clear that the server owner or system administrator has to guarantee this stability.

Maybe this is the wrong way to get to a point. Lets try another. I did not test this so what happens if the database connection drops and can not be reestablished within 10 retries? Regardless of checkOnJoin.

confuser commented 8 years ago

Sorry seem to have missed this

Maybe this is the wrong way to get to a point. Lets try another. I did not test this so what happens if the database connection drops and can not be reestablished within 10 retries? Regardless of checkOnJoin.

Then whatever query that it was attempting, will fail and throw an exception, halting anything it was doing i.e. running a command, performing a sync etc. Anything else after that which causes a query to run against the database will try to connect again, and so on, resulting in an endless 'attempting to connect' cycle as shown above.

EvilOlaf commented 8 years ago

So basically there are more than 10 retries?

confuser commented 8 years ago

There are 10 retries per query.