CC007 / HeadSweeper

This is a minesweeper implementation for minecraft using the HeadsPlugin API and the MCSweeper API
MIT License
0 stars 0 forks source link

PersistenceException on server start-up #3

Closed SlimeDog closed 2 years ago

SlimeDog commented 2 years ago

Spigot 1.18.1-3429 HeadsPluginAPI 3.0.0 HeadSweeper 1.7.0

On server start-up (ie., onEnable):

[15:09:59] [Server thread/ERROR]: Error occurred while enabling HeadSweeper v1.7.0 (Is it up to date?)
org.apache.openjpa.persistence.PersistenceException: The transaction has been rolled back.  See the nested exceptions for details on the errors that occurred.
        at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2475) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2310) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2201) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1964) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java:1027) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:901) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:842) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:601) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:297) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:314) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.services.jpa.JpaQueryService.getMutableResultList(JpaQueryService.java:119) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.services.jpa.JpaQueryService.findAllByPropertyIn(JpaQueryService.java:78) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.repositories.jpa.JpaHeadRepository.findAllByHeadOwnerIn(JpaHeadRepository.java:32) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadUpdaterImpl.lambda$updateHeads$0(HeadUpdaterImpl.java:39) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.lambda$runTransacted$2(JpaNestableTransaction.java:72) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.runTransacted(JpaNestableTransaction.java:109) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.runTransacted(JpaNestableTransaction.java:70) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.runTransacted(JpaNestableTransaction.java:49) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadUpdaterImpl.updateHeads(HeadUpdaterImpl.java:31) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadSearcherImpl.lambda$updateSearch$5(HeadSearcherImpl.java:147) ~[HeadsPluginAPI-3.0.0.jar:?]
        at java.util.HashMap.forEach(HashMap.java:1421) ~[?:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadSearcherImpl.updateSearch(HeadSearcherImpl.java:146) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadSearcherImpl.updateHeadsIfNecessary(HeadSearcherImpl.java:98) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadSearcherImpl.lambda$getHeads$2(HeadSearcherImpl.java:74) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.lambda$runTransacted$2(JpaNestableTransaction.java:72) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.runTransacted(JpaNestableTransaction.java:109) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.runTransacted(JpaNestableTransaction.java:70) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.integration.database.transaction.jpa.JpaNestableTransaction.runTransacted(JpaNestableTransaction.java:49) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadSearcherImpl.lambda$getHeads$3(HeadSearcherImpl.java:72) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.ProfilerImpl.lambda$runProfiled$0(ProfilerImpl.java:41) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.ProfilerImpl.runProfiled(ProfilerImpl.java:64) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.ProfilerImpl.runProfiled(ProfilerImpl.java:41) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsplugin.business.services.heads.HeadSearcherImpl.getHeads(HeadSearcherImpl.java:71) ~[HeadsPluginAPI-3.0.0.jar:?]
        at com.github.cc007.headsweeper.HeadSweeper.initHeads(HeadSweeper.java:240) ~[HeadSweeper-1.7.0.jar:?]
        at com.github.cc007.headsweeper.HeadSweeper.onEnable(HeadSweeper.java:85) ~[HeadSweeper-1.7.0.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:342) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugin(CraftServer.java:521) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugins(CraftServer.java:435) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:612) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:414) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:262) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:994) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:304) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3429-Spigot-6edb62f-6a54e5d]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: org.apache.openjpa.persistence.EntityExistsException: integrity constraint violation: unique constraint or index violation; SYS_PK_10130 table: HEADS {prepstmnt 530551005 INSERT INTO heads (id, headOwner, name, value, version) VALUES (?, ?, ?, ?, ?)} [code=-104, state=23505]
        at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:5305) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:5280) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.sql.HSQLDictionary.newStoreException(HSQLDictionary.java:405) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:134) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:75) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:146) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:80) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:102) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:90) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:555) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:109) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:61) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:109) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:81) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:755) ~[HeadsPluginAPI-3.0.0.jar:?]
        at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:146) ~[HeadsPluginAPI-3.0.0.jar:?]
        ... 45 more
SlimeDog commented 2 years ago

This appears to be resolved by deleting the contents of plugins/HeadsPluginAPI/data/ and restarting the server. See https://github.com/CC007/HeadsPluginAPI/issues/21.

CC007 commented 2 years ago

Sidenote: Since you're only using headsweeper and not headsinventory, having you update all the categories seems a bit overkill. I'll see if I can add a config parameter to make this update optional.

SlimeDog commented 2 years ago

Actually, I have HeadsInventory installed, for testing purposes. But options to reduce load are always good.

SlimeDog commented 2 years ago

This issue has not recurred for a while. OK to close?

CC007 commented 2 years ago

We can close it for now and reopen it if it happens again.