@@ -1144,16 +1144,35 @@ public ObIndexInfo getOrRefreshIndexInfo(final String indexTableName, boolean fo
11441144 int refreshTryTimes = tableEntryRefreshTryTimes > serverSize ? serverSize
11451145 : tableEntryRefreshTryTimes ;
11461146 for (int i = 0 ; i < refreshTryTimes ; i ++) {
1147- ObServerAddr serverAddr = serverRoster .getServer (serverAddressPriorityTimeout ,
1148- serverAddressCachingTimeout );
1149- indexInfo = getIndexInfoFromRemote (serverAddr , sysUA ,
1150- tableEntryAcquireConnectTimeout , tableEntryAcquireSocketTimeout ,
1151- indexTableName );
1152- if (indexInfo != null ) {
1153- indexinfos .put (indexTableName , indexInfo );
1154- } else {
1155- RUNTIME .error ("get index info from remote is null, indexTableName: {}" ,
1156- indexTableName );
1147+ try {
1148+ ObServerAddr serverAddr = serverRoster .getServer (serverAddressPriorityTimeout ,
1149+ serverAddressCachingTimeout );
1150+ indexInfo = getIndexInfoFromRemote (serverAddr , sysUA ,
1151+ tableEntryAcquireConnectTimeout , tableEntryAcquireSocketTimeout ,
1152+ indexTableName );
1153+ if (indexInfo != null ) {
1154+ indexinfos .put (indexTableName , indexInfo );
1155+ } else {
1156+ RUNTIME .error ("get index info from remote is null, indexTableName: {}" ,
1157+ indexTableName );
1158+ }
1159+ } catch (ObTableServerCacheExpiredException e ) {
1160+ RUNTIME .error ("get index info from remote meet exception" , e );
1161+ syncRefreshMetadata (false );
1162+ } catch (ObTableEntryRefreshException e ) {
1163+ RUNTIME .error ("get index info from remote meet exception" , e );
1164+ if (tableEntryRefreshContinuousFailureCount .incrementAndGet () > tableEntryRefreshContinuousFailureCeiling ) {
1165+ logger .error (LCD .convert ("01-00019" ),
1166+ tableEntryRefreshContinuousFailureCeiling );
1167+ syncRefreshMetadata (false );
1168+ tableEntryRefreshContinuousFailureCount .set (0 );
1169+ } else if (e .isConnectInactive ()) {
1170+ syncRefreshMetadata (false );
1171+ tableEntryRefreshContinuousFailureCount .set (0 );
1172+ }
1173+ } catch (Throwable t ) {
1174+ RUNTIME .error ("getOrRefreshTableEntry meet exception" , t );
1175+ throw t ;
11571176 }
11581177 }
11591178 return indexInfo ;
0 commit comments