rangareddy commented on PR #19486:
URL: https://github.com/apache/hudi/pull/19486#issuecomment-5252115778

   Squashed to a single commit and rebased onto current master (31 commits of 
drift; neither file had been touched upstream, so no conflicts). Re-ran 
everything after the rebase rather than assuming it still held: 
`org.apache.hudi.client.transaction.**` 256 tests green, checkstyle 0, 
apache-rat 0.
   
   Two changes while reviewing, both in the test:
   
   1. The regression previously failed with a bare 
`java.util.concurrent.TimeoutException` from `Future.get`, which tells a reader 
nothing. It now converts that into an `AssertionError` naming the cause:
   
      ```
      java.lang.AssertionError: tryLock never returned - it is blocked on the 
monitor held by the unrelated
      thread, which means the provider is synchronizing on the interned "lock" 
literal again rather than on a
      private monitor
      ```
   
      Re-verified both arms afterwards: production file reverted to master -> 
10 run / 1 failed with that message; with the fix -> 10 run / 0 failed.
   
   2. The evidence for the hazard is sharper than the description claimed, so I 
strengthened it: `FileSystemBasedLockProviderTestClass` does not merely 
synchronize on its `LOCK = "lock"` constant, it calls 
`LOCK.wait(retryWaitTimeMs)` inside that block (line 79). An unrelated provider 
implementation is therefore waiting and notifying on the very monitor this 
provider takes.
   
   The description is updated for both, including the failure transcript, which 
quoted the old `TimeoutException`. I also unchecked "CI passes on my PR" — the 
checks are queued, and the module evidence above is local.
   
   @hudi-agent's nit from the first round (do not name a test class in 
production Javadoc) remains applied: the production comment states the 
mechanism only, and the concrete instance lives here and in the commit message 
where going stale costs nothing.


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

Reply via email to