Civcraft / RealisticBiomes

Do not open issues here; open them on the maintained fork @ DevotedMC
https://github.com/DevotedMC/RealisticBiomes
7 stars 14 forks source link

Statement failed to close #72

Closed rourke750 closed 8 years ago

rourke750 commented 8 years ago

Caused by: com.avaje.ebeaninternal.server.lib.sql.DataSourceException: Failed to execute/load the data from the plants table (In PlantChunk.load()) with chunkId 36, coords <Chu│···························································· nkCoords [World: 1387469136, X: 5, Z: -22 ] │···························································· at com.untamedears.realisticbiomes.persist.PlantChunk.load(PlantChunk.java:193) ~[?:?] │···························································· at com.untamedears.realisticbiomes.persist.PlantManager.loadChunk(PlantManager.java:494) ~[?:?] │···························································· at com.untamedears.realisticbiomes.persist.PlantManager.growChunk(PlantManager.java:579) ~[?:?] │···························································· at com.untamedears.realisticbiomes.listener.GrowListener.onChunkLoad(GrowListener.java:229) ~[?:?] │···························································· at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?] │···························································· at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_72-internal] │···························································· at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_72-internal] │···························································· at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· ... 23 more │···························································· Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed. │···························································· at sun.reflect.GeneratedConstructorAccessor69.newInstance(Unknown Source) ~[?:?] │···························································· at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_72-internal] │···························································· at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_72-internal] │···························································· at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.Util.getInstance(Util.java:382) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:402) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3722) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.mysql.jdbc.PreparedStatement.setLong(PreparedStatement.java:3751) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· at com.untamedears.realisticbiomes.persist.PlantChunk.load(PlantChunk.java:150) ~[?:?] │···························································· at com.untamedears.realisticbiomes.persist.PlantManager.loadChunk(PlantManager.java:494) ~[?:?] │···························································· at com.untamedears.realisticbiomes.persist.PlantManager.growChunk(PlantManager.java:579) ~[?:?] │···························································· at com.untamedears.realisticbiomes.listener.GrowListener.onChunkLoad(GrowListener.java:229) ~[?:?] │···························································· at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?] │···························································· at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_72-internal] │···························································· at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_72-internal] │···························································· at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-880a532] │···························································· ... 23 more

ProgrammerDan commented 8 years ago

So this is systemic after the database's internal timeout has occurred. Connection goes away, resources are closed clientside but the code doesn't handle this gracefully. This is part of the larger rewrite that needs to happen but for now I'll try to put a bandaide on it.

ProgrammerDan commented 8 years ago

Adding Keepalive to prevent this after downtimes here: https://github.com/Civcraft/RealisticBiomes/commit/57d1fa8506ee120c8760900ef1365f5abaf6a6e3