-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Equinox Caching: Improved Exception and Shutdown Handling #300
Conversation
@martinlippert could you have a review on this? |
Quick heads-up: I am currently away from work, so can't look at this before Aug 28. If that is fine, happy to look into this then. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, thanks a lot for analyzing this in so much depth.
I think this will need to wait until after we switch over to 2023-12 development because we are heading into RCs for 2023-09 release. |
- Added join for the CacheWriter thread, so it is not terminated hard - Improved exception and interrupt handling, deleting files if they have a risk of being incomplete
Planning to merge after a green build based on @tjwatson comment |
Yes, it seems to be overlooked. Shall I push the Update branch button to kick off new builds? |
The failures are only the expected familiar ones that are unrelated. |
Sorry this slipped through the cracks and thank you for the contribution and the general reminder. 🥇 |
@merks Thanks, Ed :-) |
Sadly, #233 is still not fully solved. The "truncated class file" issue occurs less often now, but it still does occur.
In the last weeks and months, I have analyzed the issue in more depth and applied a fix locally in our codebase. With this now the issue seems to be resolved.
The issue now occurred only between shutdown and restart of the Eclipse Platform which led me to the root cause that the CacheWriter is interrupted when the Platform is shutting down, but if the Platform is fast enough, the CacheWriter might be interrupted or even terminated hard via System.exit() when the Java Process ends.
To compensate, I have added two things: