Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 313154

Summary: Feature patch not detected having moved eclipse product
Product: [Eclipse Project] Equinox Reporter: James Blackburn <jamesblackburn+eclipse>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: mober.at+eclipse
Version: 3.6   
Target Milestone: ---   
Hardware: PC   
OS: Linux-GTK   
Whiteboard:
Attachments:
Description Flags
remote with rc1
none
Local using rc1 (works)
none
remote m6 (works)
none
metadata.log without additional features none

Description James Blackburn CLA 2010-05-17 11:01:51 EDT
Created attachment 168741 [details]
remote with rc1

This is a really odd one.  It seems to have appeared between m6 and m7, and I can reproduce on rc1.

I build a product based off the platform runtime. I install my features using p2, and this includes a platform feature patch. In the case of RC1, the patch targets 
Feature ID: 
org.eclipse.platform
Feature Version:
3.6.0.v20100512-9gF78GpqFsgprEYh7z-Q7acirDtvcwz-ebYa
provides:
org.eclipse.core.resources:3.6.100
org.eclipse.ui.ide:3.6.100

everything builds, installs and runs fine, locally. 

We have wrapper scripts that, using dropins, adds external features as link files. 

However having synced the product over to another site, reconciling doesn't work.  The only difference between this site and the other site (that I can find) is that /projects/ is a symlink to /local/projects/.

I've turned on reconciler debugging:
org.eclipse.equinox.p2.engine/enginesession/debug=true
org.eclipse.equinox.p2.engine/engine/debug=true
org.eclipse.equinox.p2.engine/profileregistry/debug=true
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

On the remote site I see in the metadata log:
!ENTRY org.eclipse.equinox.p2.director 2 0 2010-05-17 15:18:23.824
!MESSAGE Problems resolving provisioning plan.
!SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2010-05-17 15:18:23.824
!MESSAGE Unable to satisfy dependency from org.eclipse.platform.feature.group 3.6.0.v20100512-9gF78GpqFsgprEYh7z-Q7acirDtvcwz-ebYa to org.eclipse.core.resources [3.6.0.V20100513-0800].
!SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2010-05-17 15:18:23.824
!MESSAGE Unable to satisfy dependency from org.eclipse.platform.feature.group 3.6.0.v20100512-9gF78GpqFsgprEYh7z-Q7acirDtvcwz-ebYa to org.eclipse.ui.ide [3.6.0.I20100513-0500].

however this works locally & on the remote using m6.

My wrapper scripts are identical, and the shared eclipse install is both read-only and checksum identical (according to rsync). The only difference I can find is the sym-link at the root of the tree.

Logs of the launch attached, the metadata log is at the end for remote-rc1 and local-rc1.  Both sets of logs are starting from an empty configuration directory.
Comment 1 James Blackburn CLA 2010-05-17 11:02:44 EDT
Created attachment 168742 [details]
Local using rc1 (works)
Comment 2 James Blackburn CLA 2010-05-17 11:03:28 EDT
Created attachment 168743 [details]
remote m6 (works)
Comment 3 James Blackburn CLA 2010-05-17 11:48:41 EDT
Martin I know you use dropins as well -- have you had any problems with M7 / RC1 and reconciling?
Comment 4 James Blackburn CLA 2010-05-17 12:00:28 EDT
Also, if I don't turn on p2.core tracing, all I get in the error log is this:

!ENTRY org.eclipse.equinox.p2.director 4 1 2010-05-17 16:58:57.705
!MESSAGE No solution found because the problem is unsatisfiable.
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2010-05-17 16:58:57.705
!MESSAGE No solution found because the problem is unsatisfiable.

which doesn't give me any clue as to what's gone wrong.
Comment 5 Martin Oberhuber CLA 2010-05-17 12:05:57 EDT
We haven't upgraded to RC1 yet, and I haven't seen any problems with M7.
But we don't do any feature patch via dropins.
Comment 6 James Blackburn CLA 2010-05-17 13:46:38 EDT
Created attachment 168777 [details]
metadata.log without additional features

(In reply to comment #5)
> But we don't do any feature patch via dropins.

Hmm. That's an interesting point. I install our product + the feature patch 'properly' using p2.director:

./eclipse -application org.eclipse.equinox.p2.director -consolelog -nosplash \
   -metadataRepository file:$PLUGINS_PATH \
   -artifactRepository file:$PLUGINS_PATH \
   -installIU com.broadcom.cdt.feature.feature.group 2>&1 | tee -a $LOG_PATH

There are no errors reported here.

Looking at the configuration (copied in from help). My custom core.resources is ACTIVE.  It just looks like p2 is incorrectly trying to resolve the platform core.resources and not picking up there's a feature patch.
Comment 7 James Blackburn CLA 2010-05-17 13:58:43 EDT
I've changed the summary as this seems to be an issue with p2 resolving the feature patch when the eclipse product has a different (apparent) root.

It's interesting that when running this (without tracing) from the first p2.director install'd location there are no errors at all in the workspace metadata .log when using a fresh config + workspace.
Comment 8 James Blackburn CLA 2010-05-25 11:47:21 EDT
I've worked around the issues:

1) I've got rid of the symlink by using a Linux bind mount:
    mount --bind /path/to/dir1 /path/to/dir2
   Causes part of the filesystem tree to be mounted elsewhere

2) RC1 seemed to have an issue installing(/reconciling) features which define an install-handler (like ccrc). This seems to work again in rc2

3) Using the same p2 configuration directory when switch backwards and forwards between platform releases (m6, m7, rc1) breaks p2 so that it stops being able to install anything. 
I'm now using separate configurations for every base release.