Community
Participate
Working Groups
It is a follow-up to Bug 149121. We had to revert part of the fix, i.e. changes to SaveManager#saveMasterTable which caused perf regression in JDT tests, see bug 343815. We should investigate how to handle the check without introducing the regression.
Szymon P. will be working on it during 3.8.
Created attachment 195080 [details] Patch v.0.1 The part of the fix that was reverted prevents from creating corrupted workspaces. The regression occurred in a test where projects are being closed. Since in all known cases, corrupted workspaces were created after the full save was followed by a snapshot, we can assume that closing projects (i.e. performing PROJECT_SAVE) is not dangerous and does not affect the corruption scenario. Knowing that, we can perform the check before FULL_SAVE and SNAPSHOT only.
Szymon, could you check how the JDT perf test is affected now?
I've checked the test and I don't see significant regression with this patch.
Created attachment 226789 [details] Patch v.0.1 (rebased to git) The same patch only rebased to git.
The new patch does not show any regression in the JDT test (according to Szymon P.). However even if other tests are affected, there should be no visible regression in daily use. And having the fix is necessary to finally confirm that ObjectNotFoundException from Bug 149121 will never come back.
Fixed in master: http://git.eclipse.org/c/platform/eclipse.platform.resources.git/commit/?id=3a3df16c2a3e4ea0de83a017f5250d688e0e751b
User verified that sanity check works. See bug 415014.