Bug 25796 - Update to root 1.0.1 does not diable efix
Summary: Update to root 1.0.1 does not diable efix
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P1 critical (vote)
Target Milestone: 2.1 M5   Edit
Assignee: Christophe Elek CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-11-06 15:14 EST by Christophe Elek CLA
Modified: 2003-02-03 08:14 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christophe Elek CLA 2002-11-06 15:14:32 EST
Use latest nightly build + update core and update ui
Install Root 1.0.0
Install efix 334
update to root 1.0.1

efix 334 is not disabled
Comment 1 Christophe Elek CLA 2002-11-06 15:39:53 EST
tried again, cannot reproduce
Comment 2 Christophe Elek CLA 2002-11-06 16:09:58 EST
reproduced with 334 only
Comment 3 Christophe Elek CLA 2002-11-13 12:10:40 EST
reproduced in M3. regression.
Comment 4 Dejan Glozic CLA 2003-01-19 00:59:07 EST
Testing with 20030115, e334 is correctly disabled when Root 1.0.1 is installed, 
but XYZ 1.0.0.e334 stays around. This is a must-fix for the release.
Comment 5 Dejan Glozic CLA 2003-01-20 18:42:27 EST
Christophe, the bug is in ConfiguredSite.java, line 398 (verify no enable 
parent).

When XYZ 1.0.0 is unconfigured, we search if it has patches that reference it
to unconfigure them as well.

We find e334 and unconfigure it, then proceed to unconfigure its children.
When we try to unconfigure XYZ 1.0.0.e334, it fails the check at the mentioned 
line and returns.

We used to have this fixed by carefully lining up the order of features to 
unconfigure, so we must have broken it since. Please check the original code 
(2.0.2) to see what is different.
Comment 6 Christophe Elek CLA 2003-01-21 11:47:31 EST
Not a regression, we had the bug in 2.0.2
Need to be fixed.
Comment 7 Christophe Elek CLA 2003-01-21 13:24:54 EST
Action Taken:
There is a method in UpdateManagerUtils that returns the list of 'parents' of a
feature. This list is used to make sure we do not 'disable' a feature that is a
children of another enable feature. 
The code we have was comparing all the 'best match' children with the feature to
disable. It should only compare the 'real' children.
In our case we were attempting to disable the EFIX feature. We then attempted to
disable its children: the e344 efix. Root 1.0 and its children were not yet
disable. So XYZ_BOGUS Feature 1.0.0 was considered an enable parent of Feature
e334 because its included best match was efix334. 
We ought to realize that efix334 was only a best match.

The solution is to calculate the 'real' parents of a feature instead of the
'best match' parent.
Fixed UpdateManagerUtils.getParentFeatures(). It fixes this specific problem.
Action Plan: test the whole optional scenario
Comment 8 Christophe Elek CLA 2003-02-03 08:14:27 EST
Fixed, test in M5