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


##########
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:
   For MySQL, the SQLState seems to be `S1000`, error code is `0`, and the root 
cause is `PacketTooBigException`.
   
   ```
   org.skife.jdbi.v2.exceptions.CallbackFailedException:
     org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException:
       com.mysql.jdbc.PacketTooBigException:
         Packet for query is too large (9952 > 1024).
         You can change this value on the server by setting the 
max_allowed_packet' variable.
   ```
   
   The solution for this case is simply to check if the cause of 
`UnableToExecuteStatementException` is transient, which we should always do 
anyway because `UnableToExecuteStatementException` is not implicitly transient 
by itself. Since `PacketTooBigException` is not transient by any of our other 
rules, it would be categorized correctly.



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