pingtimeout commented on issue #761:
URL: https://github.com/apache/polaris/issues/761#issuecomment-2754342364

   Let me try to unblock this discussion.
   
   To determine whether these issues are real, I worked on 
[JCStress](https://github.com/openjdk/jcstress) tests.  JCStress is a testing 
framework developed by Oracle that helps verify correct behavior of concurrent 
Java code.
   
   I have implemented multiple concurrency tests against the `EntityCache` and 
found strange behaviour.  Would it be possible to get a review?  [The full 
analysis is available 
here](https://docs.google.com/document/d/1ZF5WGiSOoqg9JpSvFfhuPOK0QrqeY431/edit).
  Note that the test cases are far from covering all code paths in EntityCache. 
 So there may be other undiscovered issues.  [The code is available 
here](https://github.com/pingtimeout/polaris/tree/jcstress/jcstress-tests/).
   
   Observed behaviour:
   
   * The cache can return stale data even after it has returned fresh data
   * The cache can return `null` even in the case where an entity exist in the 
database
   * The cache can issue more database calls than necessary
   
   There is also a strange result where all actors observed the entity in 
version 3 but none observed entity in version 2, which should have been the 
case.  However I have no explanation for that one.
   
   @eric-maynard @flyrain could you review the tests and confirm they are 
correct please?


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