Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Modeling Project Releng/Releasing/Update Site Generation/Troubleshooting

Some p2 repo points to missing jars!

So, you're building something based on a p2 repo (Eclipse 3.4+ update site w/ p2 metadata) and are getting errors about missing jars?

!MESSAGE Provisioning exception
!STACK 1
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: Could not connect to 
  http://download.eclipse.org/modeling/emf/updates/milestones/features/org.eclipse.emf.validation.sdk_1.2.1.v200807161729-579093L7YxTRK7HtUz0Hhaz-JlG9.jar
  at org.eclipse.equinox.internal.p2.updatesite.UpdateSite.parseFeature(UpdateSite.java:193) 

Answer

For some reason, an old build has been removed from the combined update site, but the p2 metadata has not been refreshed. Or, the jar has been deleted but a reference to it remains in the category.xml files from which the site.xml is aggregated. In either case, you need to:

ssh build.eclipse.org

If you're unsure what you're about to do, back up the update site first before working on it.

cp -r /home/data/httpd/download.eclipse.org/modeling/emf/updates/milestones /home/data/httpd/download.eclipse.org/modeling/emf/updates/milestones_BAK

Next, to see how the command works:

cd /opt/public/modeling/releng-common/tools/scripts
./buildUpdateSiteCleanObsolete.sh

To check for missing jars:

./buildUpdateSiteCleanObsolete.sh /home/data/httpd/download.eclipse.org/modeling/emf/updates/milestones

To preview changes that will be done should missing jars be found:

./buildUpdateSiteCleanObsolete.sh -d -p /home/data/httpd/download.eclipse.org/modeling/emf/updates/milestones

To actually delete files, clean up site*.xml, and regenerate p2 metadata (each step will require confirmation):

./buildUpdateSiteCleanObsolete.sh -d -E /home/data/httpd/download.eclipse.org/modeling/emf/updates/milestones

If building locally on build.eclipse.org, changes should be more or less immediate. If building remotely (eg., accessing the metadata via http://download.eclipse.org or from a mirror), wait at least 30-60 mins for replication to complete.

Finally, and this is very important, make sure you fix permissions on the newly created/edited files and folders, eg:

ssh dev.eclipse.org

cd /home/data/httpd/download.eclipse.org/modeling/emf/updates/milestones
chgrp modeling.emf.website *
ls -la

If you get permission denied errors, that's OK, as long as the files in the dir are all set to the correct group and are group-writeable (eg., -rw-rw-r-- or drwxrwxr-x)

Still a problem?

You may discover that some feature which on the update site includes the missing feature. So, when the p2 metadata is generated, p2 will scrape the list of features from the site.xml, then check each one's feature.xml for contained feature references. In the example above, Transaction's org.eclipse.emf.emfqtv.all.sdk_1.2.3.v200810041753-3539-FFBRDMVOp5jnPbgRbDUVz0G.jar feature references the missing validation feature jar thus:

<includes
  id="org.eclipse.emf.validation.sdk"
  version="1.2.1.v200807161729-579093L7YxTRK7HtUz0Hhaz-JlG9"/>

In this case, the solution is to remove the old milestone build from the update site entirely, and to regenerate the p2 metadata.

I can't see my jars!

I just took a look at my promote log, and it seems everything went OK. However, I can't see my jars promoted to http://download.eclipse.org/releases/ganymede/staging/. What happened?

Answer

  • Check the log -- yes, no obvious problems like "permission denied" or "failed" or "could not".
[java] ERROR [0035] : No suitable provider for component (...) was found in searchPath org.eclipse.emft-search-sc
[java] ERROR [0035] : Rejecting provider site.feature(${downloads}/modeling/emft/updates/interim/site-ganymede.xml): 
   No component match was found

... for these missing features:

org.eclipse.emf.search.sdk:site.feature/[0.7.0.v200805020316,0.7.0.v200805020316]#OSGi
org.eclipse.uml2.search:site.feature/[0.7.0.v200805020316,0.7.0.v200805020316]#OSGi
org.eclipse.emf.ecoretools.diagram.search:site.feature/[0.7.0.v200805020316,0.7.0.v200805020316]#OSGi
org.eclipse.uml2.diagram.clazz.search:site.feature/[0.7.0.v200805020316,0.7.0.v200805020316]#OSGi
org.eclipse.emf.search:site.feature/[0.7.0.v200805020316,0.7.0.v200805020316]#OSGi
org.eclipse.emf.search.sdk_0.7.0.HEAD.jar
org.eclipse.uml2.diagram.clazz.search_0.7.0.HEAD.jar
org.eclipse.uml2.search_0.7.0.HEAD.jar
org.eclipse.emf.search.examples_0.7.0.v200805020316.jar
org.eclipse.emf.ecoretools.diagram.search_0.7.0.HEAD.jar
org.eclipse.emf.search_0.7.0.HEAD.jar

If you intend to build from HEAD and have already enabled forceContextQualifier in your buildAll.xml, it looks like the problem is that only ONE feature jar was added. Checking the site.xml, we see that in fact only the examples feature was added.

Why? Because your promoteToEclipse.*.properties file is not using the new signed Master zip as input to the site generation script.

How do I fix this?

ssh you@emft.eclipse.org "
  cd /var/www/html/modeling/emft/updates/interim; 
  rm -fr emft-search-0.7-I_r0; 
  mv emft-search-0.7-I_r1 emft-search-0.7-I_r0; 
  mv emft-search-0.7-I_r2 emft-search-0.7-I_r1;
";
ssh you@dev.eclipse.org "
  cd /home/data/httpd/download.eclipse.org/modeling/emft/updates/interim; 
  rm -fr emft-search-0.7-I_r0; 
  mv emft-search-0.7-I_r1 emft-search-0.7-I_r0; 
  mv emft-search-0.7-I_r2 emft-search-0.7-I_r1;
";
  • Rerun the last site update:
ssh lbigearde@emft.eclipse.org "
  cd /home/www-data/build/modeling/scripts; 
  ./promoteToEclipse.sh -sub search -Q -jarsonly -branch 0.7.0 -buildID I200805020316 -coordsite ganymede
";
http://build.eclipse.org/ganymede/ 
  -> click Cruise Control 
    -> click the "Force Build" icon on the right-hand side of the ganymatic-R3.0-I status line

Back to the top