Skip to content

Commit 2c8e02b

Browse files
committed
fix single observer do not retry
1 parent 74c6d98 commit 2c8e02b

File tree

1 file changed

+4
-16
lines changed

1 file changed

+4
-16
lines changed

src/main/java/com/alipay/oceanbase/rpc/location/model/TableLocations.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -314,9 +314,7 @@ public TableEntry refreshPartitionLocation(TableEntry tableEntry, String tableNa
314314
}
315315
logger.warn("[latency monitor] do refresh table location lock, tableName: {}", tableName);
316316
boolean success = false;
317-
int serverSize = serverRoster.getMembers().size();
318-
int retryTimes = Math.min(tableEntryRefreshTryTimes, serverSize);
319-
for (int i = 0; !success && i < retryTimes; ++i) {
317+
for (int i = 0; !success && i < tableEntryRefreshTryTimes; ++i) {
320318
try {
321319
tableEntry = loadTableEntryLocationWithPriority(serverRoster, tableEntryKey,
322320
tableEntry, tabletId, tableClient.getTableEntryAcquireConnectTimeout(),
@@ -330,7 +328,7 @@ public TableEntry refreshPartitionLocation(TableEntry tableEntry, String tableNa
330328
} catch (ObTableSchemaVersionMismatchException e) {
331329
RUNTIME.error(
332330
"refresh partition location meet schema_version mismatched exception, tryTimes: {}", i, e);
333-
if (i >= retryTimes - 1) {
331+
if (i >= tableEntryRefreshTryTimes - 1) {
334332
throw e;
335333
}
336334
long schemaVersion = tableEntry.getSchemaVersion();
@@ -357,15 +355,11 @@ public TableEntry refreshPartitionLocation(TableEntry tableEntry, String tableNa
357355
tableClient.syncRefreshMetadata(false);
358356
tableEntryRefreshContinuousFailureCount.set(0);
359357
serverRoster = tableClient.getTableRoute().getServerRoster();
360-
retryTimes = Math.min(tableEntryRefreshTryTimes, serverRoster.getMembers()
361-
.size());
362358
} else if (e.isConnectInactive()) {
363359
// getMetaRefreshConnection failed, maybe the server is down, so we need to refresh metadata directly
364360
tableClient.syncRefreshMetadata(true);
365361
tableEntryRefreshContinuousFailureCount.set(0);
366362
serverRoster = tableClient.getTableRoute().getServerRoster();
367-
retryTimes = Math.min(tableEntryRefreshTryTimes, serverRoster.getMembers()
368-
.size());
369363
}
370364
} catch (Throwable t) {
371365
RUNTIME.error("refresh partition location meet exception", t);
@@ -443,9 +437,7 @@ public TableEntry refreshTabletLocationBatch(TableEntry tableEntry, String table
443437
}
444438
logger.warn("[latency monitor] do refresh tablet locations in batch lock, tableName: {}", tableName);
445439
boolean success = false;
446-
int serverSize = serverRoster.getMembers().size();
447-
int retryTimes = Math.min(tableEntryRefreshTryTimes, serverSize);
448-
for (int i = 0; !success && i < retryTimes; ++i) {
440+
for (int i = 0; !success && i < tableEntryRefreshTryTimes; ++i) {
449441
try {
450442
tableEntry = loadTableEntryLocationInBatchWithPriority(serverRoster,
451443
tableEntryKey, tableEntry,
@@ -460,7 +452,7 @@ public TableEntry refreshTabletLocationBatch(TableEntry tableEntry, String table
460452
} catch (ObTableSchemaVersionMismatchException e) {
461453
RUNTIME.error(
462454
"refresh location in batch meet schema_version mismatched exception, tryTimes: {}", i, e);
463-
if (i >= retryTimes - 1) {
455+
if (i >= tableEntryRefreshTryTimes - 1) {
464456
throw e;
465457
}
466458
long schemaVersion = tableEntry.getSchemaVersion();
@@ -487,15 +479,11 @@ public TableEntry refreshTabletLocationBatch(TableEntry tableEntry, String table
487479
tableClient.syncRefreshMetadata(false);
488480
tableEntryRefreshContinuousFailureCount.set(0);
489481
serverRoster = tableClient.getTableRoute().getServerRoster();
490-
retryTimes = Math.min(tableEntryRefreshTryTimes, serverRoster.getMembers()
491-
.size());
492482
} else if (e.isConnectInactive()) {
493483
// getMetaRefreshConnection failed, maybe the server is down, so we need to refresh metadata directly
494484
tableClient.syncRefreshMetadata(true);
495485
tableEntryRefreshContinuousFailureCount.set(0);
496486
serverRoster = tableClient.getTableRoute().getServerRoster();
497-
retryTimes = Math.min(tableEntryRefreshTryTimes, serverRoster.getMembers()
498-
.size());
499487
}
500488
} catch (Throwable t) {
501489
RUNTIME.error("refresh location in batch meet exception", t);

0 commit comments

Comments
 (0)