aweisberg commented on code in PR #3777:
URL: https://github.com/apache/cassandra/pull/3777#discussion_r1917291262
##########
src/java/org/apache/cassandra/service/StorageProxy.java:
##########
@@ -366,9 +374,36 @@ public static RowIterator cas(String keyspaceName,
}
ConsensusAttemptResult lastAttemptResult;
+ Epoch lastEpoch = null;
do
{
+ if (lastEpoch != null)
+ {
+
+ long timeout = requestTime.computeTimeout(nanoTime(),
DatabaseDescriptor.getTransactionTimeout(NANOSECONDS));
+ Epoch lastEpochFinal = lastEpoch;
+
ClusterMetadataService.instance().log().highestPending().ifPresent(epoch ->
+ {
+ try
+ {
+
ClusterMetadataService.instance().awaitAtLeast(epoch, timeout, NANOSECONDS);
Review Comment:
That information is returned the problem is that when a node receives an
epoch that it should fetch it seems to be asynchronous so when we go to try the
transaction again the coordinator still hasn't updated it's metadata. I had to
add this loop to make sure that the new metadata was actually available.
I'll double check and make sure that the code that was responsible for doing
that hasn't been deleted.
--
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]