Sigma-Ma opened a new pull request, #8531:
URL: https://github.com/apache/hbase/pull/8531

   JIRA: https://issues.apache.org/jira/browse/HBASE-30317
   
   ## What changes were proposed in this pull request?
   
   Update `TestExecutorService.testExecutorService` to poll fresh 
`ExecutorStatus`
   snapshots with `Waiter.waitFor` until the status dump shows a handler waiting
   on the `AtomicBoolean` monitor.
   
   The existing dump check now returns a boolean used as the wait predicate. No
   fixed sleep is introduced.
   
   ## Why are the changes needed?
   
   The test previously waited only for the shared counter to reach five. 
However, each handler increments the counter before performing its initial 
logging and entering `lock.wait()`.
   
   Therefore, `counter == 5` proves only that all handlers have started. Under 
resource pressure, the status dump can be captured while all handlers are still 
RUNNABLE in `StringConcatFactory.makeConcatWithConstants`, causing the expected 
waiting-state assertion to fail.
   
   Waiting for the expected state in the actual executor status dump removes 
this synchronization race.
   
   ## How was this patch tested?
   
   ```bash
   rtk /Users/didi/didiproject/didi_spark/build/mvn \
     -pl hbase-server -am \
     -Dtest=org.apache.hadoop.hbase.executor.TestExecutorService \
     -Dsurefire.failIfNoSpecifiedTests=false \
     test
   ```
   
   The resulting executor status dump showed all five handlers in the `WAITING` 
state on the `AtomicBoolean` monitor.


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