kfaraz commented on code in PR #14271:
URL: https://github.com/apache/druid/pull/14271#discussion_r1200425479


##########
server/src/main/java/org/apache/druid/metadata/SQLMetadataConnector.java:
##########
@@ -165,14 +166,21 @@ public <T> T retryTransaction(final 
TransactionCallback<T> callback, final int q
 
   public final boolean isTransientException(Throwable e)
   {
-    return e != null && (e instanceof RetryTransactionException
-                         || e instanceof SQLTransientException
-                         || e instanceof SQLRecoverableException
-                         || e instanceof UnableToObtainConnectionException
-                         || e instanceof UnableToExecuteStatementException
-                         || connectorIsTransientException(e)
-                         || (e instanceof SQLException && 
isTransientException(e.getCause()))
-                         || (e instanceof DBIException && 
isTransientException(e.getCause())));
+    if (e == null) {
+      return false;
+    }
+    if (e.getMessage() != null && 
e.getMessage().contains(MAX_ALLOWED_PACKET_ERROR)) {

Review Comment:
   So there are two things we can do here:
   - Always look at the cause of `UnableToExecuteStatementException` to decide 
if it is transient. (this takes care of the mysql driver case)
   - For `SQLTransientConnectionException`, check the exception chain. If any 
of the causes is a `SQLNonTransientException` exception, the overall exception 
is also non-transient.
   
   Ideally, the MariaDB driver should not have not qualified this exception as 
transient in the first place.
   @gianm , let me know what you think.



-- 
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]

Reply via email to