-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
qortal core freezes after being unable to delete transaction #27
Comments
Also, I see this when I start core. WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. Is that true and relevant? |
Adding some setting to settings.json seems to have fixed the issue, but can we create a set of defautl values and comment the other options out, as is standard with config file? I could do that, except I don't know what the options are. If there is a set of parameters listed somewhere, I get to work on it. |
Thanks - having them commented out by default sounds like a good approach. Or perhaps including an example settings file with them commented out, which keeps the actual settings.json clean. Here's an example settings.json file I put together back in September 2020 (so it may be out of date):
You can see the default settings at the top of Settings.java, so it may be worth checking that all the keys and values are up to date. Also, I also have no idea if there are any errors in that JSON values that will cause problems - it was just put together quickly to give people an idea of what's available. |
The file I got with the Ubuntu / Debian .deb contained only
Probably technically a bug then to be fixed in the next release. |
Yes all releases ship with an empty settings.json file right now - which is intended. From my point of view it would be nice to have an example file though, as otherwise it's not obvious what settings are available. |
This exception is thrown by HSQLDB when different threads try to update/delete the same row. In this case, one thread is trying to delete a transaction because it has 'expired' but it's not clear what the other thread is trying to do. From memory I think it might be possible that another thread has started an SQL 'transaction', read that Qortal 'Transaction' but not yet performed COMMIT/ROLLBACK and so held a form of row-lock, causing the exception. The thread that is deleting expired transactions has captured this exception and not expired any transactions (this time). So maybe the best way forward here is to:
|
The run.log shows this:
2021-02-09 16:31:49 ERROR Controller:814 - Repository issue while deleting expired unconfirmed transactions
org.qortal.repository.DataException: Unable to delete transaction from repository
at org.qortal.repository.hsqldb.transaction.HSQLDBTransactionRepository.delete(HSQLDBTransactionRepository.java:1275) ~[qortal.jar:1.4.1]
at org.qortal.controller.Controller.deleteExpiredTransactions(Controller.java:808) [qortal.jar:1.4.1]
at org.qortal.controller.Controller.run(Controller.java:569) [qortal.jar:1.4.1]
Caused by: java.sql.BatchUpdateException: transaction rollback: serialization failure
at org.hsqldb.jdbc.JDBCPreparedStatement.executeBatch(Unknown Source) ~[qortal.jar:1.4.1]
at org.qortal.repository.hsqldb.HSQLDBRepository.executeCheckedBatchUpdate(HSQLDBRepository.java:657) ~[qortal.jar:1.4.1]
at org.qortal.repository.hsqldb.HSQLDBRepository.executeCheckedUpdate(HSQLDBRepository.java:633) ~[qortal.jar:1.4.1]
at org.qortal.repository.hsqldb.HSQLDBRepository.delete(HSQLDBRepository.java:747) ~[qortal.jar:1.4.1]
at org.qortal.repository.hsqldb.transaction.HSQLDBTransactionRepository.delete(HSQLDBTransactionRepository.java:1273) ~[qortal.jar:1.4.1]
... 2 more
There are no more entries in log.txt.1
The text was updated successfully, but these errors were encountered: