forked from Qortal/qortal
Fixed more issues that could cause transactions to be held open.
This commit is contained in:
parent
ca7f42c409
commit
c4d7335fdd
@ -94,6 +94,7 @@ public class AtStatesPruner implements Runnable {
|
|||||||
else {
|
else {
|
||||||
// We've pruned up to the upper prunable height
|
// We've pruned up to the upper prunable height
|
||||||
// Back off for a while to save CPU for syncing
|
// Back off for a while to save CPU for syncing
|
||||||
|
repository.discardChanges();
|
||||||
Thread.sleep(5*60*1000L);
|
Thread.sleep(5*60*1000L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,18 +25,19 @@ public class BlockArchiver implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try (final Repository repository = RepositoryManager.getRepository()) {
|
try (final Repository repository = RepositoryManager.getRepository()) {
|
||||||
|
// Don't even start building until initial rush has ended
|
||||||
|
Thread.sleep(INITIAL_SLEEP_PERIOD);
|
||||||
|
|
||||||
int startHeight = repository.getBlockArchiveRepository().getBlockArchiveHeight();
|
int startHeight = repository.getBlockArchiveRepository().getBlockArchiveHeight();
|
||||||
|
|
||||||
// Don't attempt to archive if we have no ATStatesHeightIndex, as it will be too slow
|
// Don't attempt to archive if we have no ATStatesHeightIndex, as it will be too slow
|
||||||
boolean hasAtStatesHeightIndex = repository.getATRepository().hasAtStatesHeightIndex();
|
boolean hasAtStatesHeightIndex = repository.getATRepository().hasAtStatesHeightIndex();
|
||||||
if (!hasAtStatesHeightIndex) {
|
if (!hasAtStatesHeightIndex) {
|
||||||
LOGGER.info("Unable to start block archiver due to missing ATStatesHeightIndex. Bootstrapping is recommended.");
|
LOGGER.info("Unable to start block archiver due to missing ATStatesHeightIndex. Bootstrapping is recommended.");
|
||||||
|
repository.discardChanges();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't even start building until initial rush has ended
|
|
||||||
Thread.sleep(INITIAL_SLEEP_PERIOD);
|
|
||||||
|
|
||||||
LOGGER.info("Starting block archiver...");
|
LOGGER.info("Starting block archiver...");
|
||||||
|
|
||||||
while (!Controller.isStopping()) {
|
while (!Controller.isStopping()) {
|
||||||
@ -91,6 +92,7 @@ public class BlockArchiver implements Runnable {
|
|||||||
// that a bootstrap or re-sync is needed. Try again every minute until then.
|
// that a bootstrap or re-sync is needed. Try again every minute until then.
|
||||||
LOGGER.info("Error: block not found when building archive. If this error persists, " +
|
LOGGER.info("Error: block not found when building archive. If this error persists, " +
|
||||||
"a bootstrap or re-sync may be needed.");
|
"a bootstrap or re-sync may be needed.");
|
||||||
|
repository.discardChanges();
|
||||||
Thread.sleep( 60 * 1000L); // 1 minute
|
Thread.sleep( 60 * 1000L); // 1 minute
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -99,6 +99,7 @@ public class BlockPruner implements Runnable {
|
|||||||
else {
|
else {
|
||||||
// We've pruned up to the upper prunable height
|
// We've pruned up to the upper prunable height
|
||||||
// Back off for a while to save CPU for syncing
|
// Back off for a while to save CPU for syncing
|
||||||
|
repository.discardChanges();
|
||||||
Thread.sleep(10*60*1000L);
|
Thread.sleep(10*60*1000L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -317,6 +317,7 @@ public class Bootstrap {
|
|||||||
LOGGER.info("Retrying in 5 minutes");
|
LOGGER.info("Retrying in 5 minutes");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
repository.discardChanges();
|
||||||
Thread.sleep(5 * 60 * 1000L);
|
Thread.sleep(5 * 60 * 1000L);
|
||||||
} catch (InterruptedException e2) {
|
} catch (InterruptedException e2) {
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user