* When we run in a shared install scenario, we create a bundles.info
file from the p2 profile. When Eclipse is launched, our generated bundles.info
file is checked against the shared one, and if any inconsistencies are found, we ignore ours and use the shared one. However, the shared one is read only, and will never contain the additional bundles.
I think there might be two parts of this problem, the more serious part is "if any inconsisencies are found".
I guess that was a little vague, sorry. Actually, p2 doesn't silently fail, it actually succeeds and prompts you for a restart. It is during the restart phase that the simple configurator must choose which bundles.info
file to use (you have two of them now, one in your local directory and one in your shared directory). The logic for this is in SimpleConfiguratorImpl#getConfigurationURL() Line 103.
The logic says: If the shared bundles.info
contains all the bundles in the local one, then use the local one. That is, if the shared bundles.info
is a subset, then it's ok to use the local bundles.info
-- because the local just contains additional bundles. However, if somehow the local one removes bundles (or updates them), then we will likely hit problems down the road, so revert and use the shared bundles.info
file -- this is the inconsistency I was talking about. Since we hit this inconsistency, we assume the local bundles.info
file is 'wrong' and we use the shared one -- which of course doesn't have the newly installed bundles. Thus p2 succeeds, but the restart misses these bundles. A subtle point -- and one our end users don't particularly care about -- but that may help us determine what to do.
p2 takes care to ensure that bundles don't get removed / updated in the local bundles.info
. However, in the case of the EPP packages, we are shipping with a configuration error, and this just confuses p2.
Think of it this way: if you start with a good state, p2 will keep you in a good state.
There have been some reports that this is also happening with Eclipse Classic (or the SDK). If this is the case, then we might have more than one problem here.
Does that make sense?
I'm not sure what you mean by that, but the problem is that the installation silently and completely succeeds from a user point of view and even shows the software installed, except that none of the plugins are actually there. This should never happen no matter what, at least the installation should fail. And then the second part of course is to make it work (which may be an issue with the packages and p2).
p2-dev mailing list