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]
