apurtell opened a new pull request, #2435:
URL: https://github.com/apache/phoenix/pull/2435

   `OmidTransactionClient` captures the provider's `HBaseTransactionManager` at 
construction time. `OmidTransactionContext` in turn caches that same reference 
in a private field. When a prior test class shuts down OMID's TSO together with 
its mini-cluster, the next test class reuses the stale wrapper and is 
dispatched to the dead executor. The symptom is a `RejectedExecutionException` 
originating from the OMID TSOClient state-machine executor.
    
   In production the singleton's manager is set exactly once and never 
replaced, but the test framework exercises the swap path between classes within 
a single Surefire/Failsafe fork.
    
   Fix:
    
   `OmidTransactionClient` becomes a thin view onto the singleton's current 
`HBaseTransactionManager`. It resolves
   `provider.transactionManager` on every call to `getTransactionClient()`. 
`transactionManager` is marked volatile so test-framework injection is 
published to other threads without synchronization.
   
   In production the dynamic lookup is functionally identical to caching.


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