Bug 447042 - Concurrent save/load/unload might pass through the session implementation
Summary: Concurrent save/load/unload might pass through the session implementation
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: 1.0.0   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
: 456895 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-10-14 05:25 EDT by Cedric Brun CLA
Modified: 2015-06-18 04:48 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cedric Brun CLA 2014-10-14 05:25:59 EDT
Several concurrent operations might pass-through the session API leading to an unexpected internal state. 
If some file update event gets triggered from the Eclipse workspace while the session implementation is saving, the other thread will pass through potentially leading to an inconsistent internal state. 

We have witnessed that the Eclipse HIPP servers tends to trigger more of this as the workspace actually is a NFS mount and as such tend to have a slightly different scheduling of the events.

We should make sure that operations like open, close, save, and reloading are protected against concurrent use.
Comment 1 Cedric Brun CLA 2014-10-14 05:52:15 EDT
A preliminary change has been done here to see how the tests are going and if it triggers improvements and/or deadlocks.

https://git.eclipse.org/r/34841

It should not be merged as is, in its current incarnation it is keeping the changes to a minimum hence still exposing async constructs like ResourceSyncClientNotifier which have no good reason to exist.
Comment 2 Laurent Redor CLA 2014-10-20 13:18:40 EDT
Cédric, could you have a look to bug 447963? I think a "regression" is due to a commit made for this issue?
Comment 3 Esteban DUGUEPEROUX CLA 2015-04-21 09:45:20 EDT
*** Bug 456895 has been marked as a duplicate of this bug. ***