HBASE-25743: Retry REQUESTTIMEOUT based KeeperExceptions in ZK client.

Starting ZOOKEEPER-2251, client requests exceeding a timeout can throw
a KeeperException with REQUESTTIMEOUT opcode set. RecoverableZookeeper
doesn't transparently retry in such cases.
This commit is contained in:
Bharath Vissapragada 2021-04-07 10:51:20 -07:00
parent d9f4f41f76
commit f7a0323895
No known key found for this signature in database
GPG Key ID: 18AE42A0B5A93FA7
1 changed files with 9 additions and 20 deletions

View File

@ -182,9 +182,8 @@ public class RecoverableZooKeeper {
throw e;
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "delete");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "delete");
break;
@ -222,9 +221,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "exists");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "exists");
break;
@ -279,9 +277,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "getChildren");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "getChildren");
break;
@ -328,9 +325,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "getData");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "getData");
break;
@ -370,9 +366,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "setData");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "setData");
break;
case BADVERSION:
@ -415,9 +410,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "getAcl");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "getAcl");
break;
@ -444,8 +438,6 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "setAcl");
break;
case OPERATIONTIMEOUT:
retryOrThrow(retryCounter, e, "setAcl");
break;
@ -524,9 +516,8 @@ public class RecoverableZooKeeper {
throw e;
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "create");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "create");
break;
@ -559,9 +550,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "create");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "create");
break;
@ -615,9 +605,8 @@ public class RecoverableZooKeeper {
} catch (KeeperException e) {
switch (e.code()) {
case CONNECTIONLOSS:
retryOrThrow(retryCounter, e, "multi");
break;
case OPERATIONTIMEOUT:
case REQUESTTIMEOUT:
retryOrThrow(retryCounter, e, "multi");
break;