Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Modeling Project Releng/Releasing/Update Site Generation/Troubleshooting
Contents
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 may be to remove the old milestone build from the update site entirely, and to regenerate the p2 metadata.
If you've broken an aggregation build (Ganymede, Galileo) you may want to spin a new Release build so that your contribution to those aggregate builds comes from a more complete update site, namely, the /updates/releases/ site instead of the /updates/milestones/ one.
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".
- Check the latest Ganymede build log, as we see errors ...
[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
- Check the interim site. Features are there, but they shouldn't have "HEAD" in their names.
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?
- Back out the last site update (you can also use buildUpdateSiteRollback.sh):
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