ruanwenjun opened a new pull request, #7709:
URL: https://github.com/apache/kyuubi/pull/7709

   ### Why are the changes needed?
   
   A JDBC metadata `UPDATE` may report an update count of zero when the row is 
missing or when the requested values are already present. Kyuubi currently 
treats every zero count as a retryable failure. A persistent failure therefore 
remains in the retry queue and can block batch-session timeout cleanup while it 
waits for metadata retries to finish.
   
   When an `UPDATE` returns zero, this patch verifies only the updated fields 
on the same JDBC connection:
   
   - An exact match is treated as an idempotent success.
   - A missing or mismatched row is retried once through the existing FIFO 
queue, then discarded if the postcondition still fails. This preserves recovery 
for an earlier queued `INSERT` without retrying a permanently missing row 
forever.
   - Database access failures remain retryable, and the existing close-time 
retry wait is preserved.
   
   Closes #7708.
   
   ### How was this patch tested?
   
   - Added a SQLite trigger-based regression test that forces `executeUpdate()` 
to return zero for both matching and mismatching rows.
   - Added retry coverage showing that a persistently missing row is removed 
from the retry queue.
   - Kept the existing FIFO `INSERT`-then-`UPDATE` retry coverage passing.
   - Ran:
   
     ```shell
     build/mvn test -pl kyuubi-server -am \
       -Pspark-provided,flink-provided,hive-provided \
       -Dtest=none \
       
-DwildcardSuites=org.apache.kyuubi.server.metadata.jdbc.JDBCMetadataStoreSuite,org.apache.kyuubi.server.metadata.MetadataManagerSuite
     ```
   
     All 13 tests passed.
   
   ### Was this patch assisted by generative AI tooling?
   
   Assisted-by: OpenAI Codex with GPT-5
   


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