dcapwell commented on code in PR #3656:
URL: https://github.com/apache/cassandra/pull/3656#discussion_r1828419215
##########
src/java/org/apache/cassandra/service/accord/AccordCommandStore.java:
##########
@@ -505,38 +506,49 @@ public void shutdown()
{
}
- protected ConfigurationService.EpochReady syncInternal(Node node, Ranges
ranges, long epoch, boolean isLoad)
+ @Override
+ protected ConfigurationService.EpochReady syncInternal(Node node, Ranges
ranges, long epoch, AsyncResult<Void> metadata, boolean isLoad)
{
if (!isLoad)
- return super.syncInternal(node, ranges, epoch, false);
+ return super.syncInternal(node, ranges, epoch, metadata, false);
List<Pair<Range, Deps>> loaded =
journal.loadHistoricalTransactions(epoch, id);
// synchronously load and register historical, so we don't have
unlimited numbers of epochs in flight
+ List<AsyncChain<Void>> registerWork = CommandStore.maybeCurrent() ==
null ? null : new ArrayList<>(loaded.size());
Review Comment:
> 2) AccordCommandStore submitted sync requests in a blocking manner, but
did this on a CommandStore… this lead to a 5 minute deadlock
This is mostly a hack... we don't control our threads so chains can run in
random places, and this is getting called on a `CommandStore`, which means the
blocking below would never work, and would stop this thread from making
progress... I didn't want to try to figure out how to fix the chains to not go
to the store as that is kinda a whack-a-mole thing...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]