| Summary: | Corrupted aird files when retrieving a project from SCM after an uncontrol | ||
|---|---|---|---|
| Product: | [Modeling] Sirius | Reporter: | Pierre-Charles David <pierre-charles.david> |
| Component: | Core | Assignee: | Project inbox <sirius.core-inbox> |
| Status: | CLOSED FIXED | QA Contact: | Florian Barbin <florian.barbin> |
| Severity: | normal | ||
| Priority: | P3 | CC: | esteban.dugueperoux, florian.barbin, laurent.redor, pierre-charles.david, stephane.thibaudeau |
| Version: | 3.0.0 | Keywords: | triaged |
| Target Milestone: | 4.0.0M4 | ||
| Hardware: | All | ||
| OS: | All | ||
| See Also: |
https://git.eclipse.org/r/55631 https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=d19a3e61524136c136cc2642e0f8342e6b961aa2 |
||
| Whiteboard: | |||
| Bug Depends on: | 475834 | ||
| Bug Blocks: | |||
|
Description
Pierre-Charles David
Cloned from #475834 to report the fix on master for Sirius 3.1.0. As mentioned by Esteban in https://bugs.eclipse.org/bugs/show_bug.cgi?id=475834#c1, the symptoms are not exactly the same on master as they were on v2.0.x (I reproduce the stack Esteban saw on current master). The patch from http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=36e28c09b9232b5201aa4508f375fd21496162a4 seems to also fix the issue on master, but more investigation is needed to understand the behavior difference before merging this. On master there is also a problem in the "Model Explorer" refreshment after the operation: initialy the reloaded aird can not be expanded anymore. Simply collapsing/expanding the parent project fixes the issue, and then everything seems fine, so it may be simply a UI synchronization issue. I'll push a draft review simply cherry-picking the v2.0.x fix on master to get the Gerrit builds feedback, but as mentioned above, more work is needed to better understand the ins and outs of the issue and fix before merging this on master. New Gerrit change created: https://git.eclipse.org/r/55631 The above gerrit does not resolved completely the initial problem. As said by Pierre-Charles
> On master there is also a problem in the "Model Explorer" refreshment after the operation: initialy the reloaded aird can not be expanded anymore.
This is caused by the fact that the session is closed during the refresh.
SessionManagerImpl.remove(Session) is called by DAnalysisSessionImpl.close(IProgressMonitor), that is called by the ReloadingPolicy when the My_newPackage1.aird is removed --> ReloadingPolicyImpl.handleExternalDelete(Session, Resource, ResourceStatus).
SessionManagerImpl.remove(Session) line: 149
DAnalysisSessionImpl.close(IProgressMonitor) line: 1234
SessionResourcesSynchronizer.processAction(ReloadingPolicy$Action, Resource, IProgressMonitor) line: 164
SessionResourcesSynchronizer.processActions(List<Action>, Resource, IProgressMonitor) line: 157
SessionResourcesSynchronizer.statusesChanged(Collection<ResourceStatusChange>) line: 106
ResourceSetSync.notifyClientsInBatch(Collection<ResourceStatusChange>) line: 392
ResourceSetSync.statusesChanged(Collection<ResourceStatusChange>) line: 447
The probem of closed session after refresh is the same on current state of Sirius v2.0.x branch (with commit 36e28c of bug 475834). Gerrit change https://git.eclipse.org/r/55631 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=d19a3e61524136c136cc2642e0f8342e6b961aa2 The patch present in 3.1.0 fixes the most important issue (data loss/corruption). Moving the ticket to 4.0 to have a look at the remaining issues, which can relatively easily be worked around for now (closing/reopening the project/session restores a usable state). Verified on Verified on Sirius 4.0.0.201605180923 Available in Sirius 4.0.0. |