Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 351989 - [reconciler] Add more debug info for reconciler
Summary: [reconciler] Add more debug info for reconciler
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: 3.6.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.6.2+   Edit
Assignee: DJ Houghton CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 352789
  Show dependency tree
 
Reported: 2011-07-13 11:08 EDT by Krzysztof Daniel CLA
Modified: 2011-07-21 15:04 EDT (History)
3 users (show)

See Also:


Attachments
Patch for debugging (1.59 KB, patch)
2011-07-13 11:08 EDT, Krzysztof Daniel CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Krzysztof Daniel CLA 2011-07-13 11:08:32 EDT
Created attachment 199593 [details]
Patch for debugging

Eclipse SDK

Version: 3.7.0
Build id: I20110613-1736

Scenario:
(1) enable dropins debug and apply the attached patch. It should print all changes that are going to happen.
(2) put test plugin A_1.0 and A_1.1 into dropins. 
(3) Start Eclipse and verify that A_1.1 is installed. Stop Eclipse
(4) remove A_1.1 and start Eclipse
(5) see messages that A_1.1 is uninstalled but no messages that 1.0 is installed (although it really is)
(6) put 1.1 again into dropins
(7) see that 1.1 is installed, but no mention of 1.0 uninstalled
Comment 1 DJ Houghton CLA 2011-07-18 15:27:52 EDT
What build are you using? When performing these steps on build N20110717-2000 I see the correct debug information printed to the console [1] when I remove v1.1 but when I add it back I do not see the removal of v1.0 in the console. [2]

When stepping through and debugging, the operands in the plan when adding v1.1 back to the dropins looks like this:
   [R]singleton 1.0.0 --> [R]singleton 1.1.0
So it appears running the reconciler in debug mode does not print out details for IUs which are updated. 

I assume that it is just the debug information that you are concerned about, and the behaviour of the reconciler is still correct?

[1]
[p2] [reconciler] Adding IU: singleton 1.0.0
[p2] [reconciler] Adding IU property: singleton 1.0.0->{org.eclipse.equinox.p2.type.lock=1, org.eclipse.equinox.p2.internal.inclusion.rules=OPTIONAL, org.eclipse.equinox.p2.reconciler.dropins=true}
[p2] [reconciler] Removing IU: singleton 1.1.0

[2]
[p2] [reconciler] [dropins] Interesting feature or bundle added: /Users/equinox/Downloads/eclipse/dropins/singleton_1.1.0.jar
[p2] [reconciler] Adding IU: singleton 1.1.0
[p2] [reconciler] No installable units to remove.
Comment 2 DJ Houghton CLA 2011-07-18 15:57:54 EDT
Note you can get debug information about the operands themselves by turning on the following debug flag:
  org.eclipse.equinox.p2.core/planner/operands=true
Comment 3 Krzysztof Daniel CLA 2011-07-19 05:15:48 EDT
DJ,

thanks for the attention. The real problem I have is that the plan verifier from the 3.6 maintenance branch is fooled. The IProvisioningPlan contains only
#getAdditions and #getRemovals. 

Blocking unadvised installation works fine, but if you try to revert some small allowed changes (minor updates like test fixes), the plan knowns that certain plugins will be uninstalled, but does not know they will be replaced. So the operation is so dangerous that it is blocked.
Comment 4 DJ Houghton CLA 2011-07-19 11:01:59 EDT
Sorry, I'm still a little confused. In 3.6.2 I am debugging the code and when I come across the plan in SimplePlanner#verifyPlan I execute the following code:
	plan.getAdditions().query(QueryUtil.createIUAnyQuery(), null).toArray(IInstallableUnit.class);
	plan.getRemovals().query(QueryUtil.createIUAnyQuery(), null).toArray(IInstallableUnit.class);

And I see the correct IUs being added/removed. 

Can you be more specific with the details of the problem you are seeing?
Comment 5 Krzysztof Daniel CLA 2011-07-20 10:05:13 EDT
I tried to reproduce again today, but it worked as expected.
Feel free to close this bug as worksforme. 

BTW. could you release the patch that is attached here? It just adds more debugging information.
Comment 6 DJ Houghton CLA 2011-07-21 13:43:53 EDT
Patch released to 3.6 maintenance branch. I'm not sure how you want to consume this, I don't know if there is a 3.6 build scheduled.
Comment 7 DJ Houghton CLA 2011-07-21 15:04:21 EDT
(released to both CVS and Git repos)