Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 325067 - Difference found for packed: osgi.bundle,org.eclipse.sdk.examples,3.1.300.v20100527
Summary: Difference found for packed: osgi.bundle,org.eclipse.sdk.examples,3.1.300.v20...
Status: RESOLVED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 3.6.1   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Kim Moir CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-13 01:38 EDT by David Williams CLA
Modified: 2010-09-13 16:18 EDT (History)
1 user (show)

See Also:


Attachments
ant script used to run compariator against release and rc3 maintenance (810 bytes, text/xml)
2010-09-13 01:40 EDT, David Williams CLA
no flags Details
console log during ant run resulting in exception due to "difference found" (17.12 KB, text/plain)
2010-09-13 01:41 EDT, David Williams CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2010-09-13 01:38:49 EDT
I tried creating a test "composite repo" for Helios, consisting of the release, and the rc3 maintenance repo. I'll attach that ant script, incase there is a better way. 

It quickly stopped with an exception, as far as I can see which was due to: 

Caused by: /opt/public/helios/runtestcomposite/helios-composite-test.xml:9: Difference found for packed: osgi.bundle,org.eclipse.sdk.examples,3.1.300.v20100527 between http://download.eclipse.org/eclipse/updates/3.6.x/M20100908-    0800 and http://download.eclipse.org/eclipse/updates/3.6/R-3.6-201006080911
160 In about.mappings, the property "0" has different values: "<missing argument>" and "<missing argument>".
 

I'll also attach full log. 

It sounds pretty minor, even if valid error, and doesn't even sound like a error from what it printed out ... "<missing argument>" and "<missing argument>" are not equal? Maybe indicates an error in the comparator? 

I suspect the Platform is the only project that does these types of "compares", so would suspect you would have found it by now, if a "real" error ... but thought I'd report, in case there's something to be learned here. 

It also, appears to me, the whole process stopped on first found "error" ... which seems odd. It runs very quickly, if it really compared the thousand or so bundles involved! Or, is it another bug in comparitor that this first exception stopped the process?
Comment 1 David Williams CLA 2010-09-13 01:40:19 EDT
Created attachment 178713 [details]
ant script used to run compariator against release and rc3 maintenance
Comment 2 David Williams CLA 2010-09-13 01:41:48 EDT
Created attachment 178714 [details]
console log during ant run resulting in exception due to "difference found"
Comment 3 David Williams CLA 2010-09-13 02:01:38 EDT
Found a similar error when doing a similar test directly on webtools repos ... 

Caused by: /opt/public/webtools/apps/antrunner/helios-composite-test.xml:9: Difference found for packed: osgi.bundle,org.eclipse.jst.jee.web.source,1.0.301.v201007070907 between file:/home/data/httpd/download.eclipse.org/webtools/downloads/drops/R3.2.1/R-3.2.1-20100730021206/repository/ and file:/home/data/httpd/download.eclipse.org/webtools/downloads/drops/R3.2.2/M-3.2.2-20100910064233/repository/
In about.mappings, the property "0" has different values: "<missing argument>" and "<missing argument>".


... seems spurious ... too bad ... cool function which I just happened to notice this evening.
Comment 4 David Williams CLA 2010-09-13 02:05:19 EDT
maybe related to bug 274739? Maybe there is an error, and just a bad message?
Comment 5 David Williams CLA 2010-09-13 03:42:24 EDT
In thinking about this, part of the problem is just a bad message ... I see similar when using comparitor in a mirror task. It's trying to tell us the bundles have same id, but in about.mappings, one is identified being built on one date, and the other built on a different date. Natural enough. 

But ... seems to me this would argue for removing all the about.mappings and get rid of changing that file just for the build date ... since, after all, the version hasn't changed, bytes should be exactly the same. 

What do you think? How has the Platform team handled this? Is there a recommended practice?
Comment 6 Kim Moir CLA 2010-09-13 09:59:07 EDT
The about.mappings in some of the bundles are updated with the build id every build.  Thus we ignore changes in these bundles when running the comparator.  

You can see this in our call to the comparator

<p2.mirror source="file:${reposource}" log="${buildlogs}/mirrorlog.txt" ignoreErrors="true">
			<destination compressed="true" name="${p2.repo.name}" location="file:${buildRepo}" append="true" format="file:${reposource}" />
			<comparator comparator="org.eclipse.equinox.p2.repository.tools.jar.comparator" comparatorLog="${buildlogs}/comparatorlog.txt">
				<repository location="${repoBaseline}" />
				<exclude>
					<artifact id="org.eclipse.jdt.doc.isv" />
					<artifact id="org.eclipse.jdt.doc.user" />
					<artifact id="org.eclipse.pde.doc.user" />
					<artifact id="org.eclipse.platform.doc.isv" />
					<artifact id="org.eclipse.platform.doc.user" />
					<artifact id="org.eclipse.equinox.executable" />
					<artifact id="org.eclipse.sdk.examples" />
					<artifact id="org.eclipse.sdk.examples.source" />
					<artifact id="master-equinox" />
				</exclude>
			</comparator>
Comment 7 David Williams CLA 2010-09-13 11:18:08 EDT
Can you remind me please what the about.mappings are used for? Is there a general/generic purpose? used or required by IDE anywhere? Such as about box?
Comment 8 Kim Moir CLA 2010-09-13 11:31:06 EDT
Yes, they are used in the about box.
Comment 9 David Williams CLA 2010-09-13 11:35:55 EDT
Oh, and one more "user question", if you don't mind ... I guess I can also just check empirically ... but, what's the intent ... 

Does the "exclude" element simply cause no error/warning message to be printed in log, or does it also mean the most recent one is mirrored, even if exact bundle version already exists, and only differs in about.mappings (so you would end up with same versions, teeny-tiny difference in bundles).
Comment 10 Kim Moir CLA 2010-09-13 11:49:12 EDT
The exclude just refers to the comparator.  Since the mirror task is run with ignoreErrors=true, the mirroring doesn't fail if there is an error, it just continues. In every case, if the bundle has the same id and version, the new bundle will be discarded and we will use the old bundle in the new child repo.  We have a releng test that parses the comparator log for errors to alert us to any problems.
Comment 11 David Williams CLA 2010-09-13 12:36:02 EDT
Greatest thanks for all your help Kim. 

If/when we ever do this test for the helios repo (on a regular basis) we'll just work with each team to get proper "exclude" items. 

(It does sound like, though, in this case, your "examples" bundle slipped through so the ones in SR0 and SR1 have same id but this different about.mapping ... but, I'm not worried :) 

Again, GREATEST THANKS! very helpful.
Comment 12 David Williams CLA 2010-09-13 12:48:45 EDT
To cross reference, I opened bug 325134 for the incorrect error message.
Comment 13 Kim Moir CLA 2010-09-13 16:18:07 EDT
No problem, David.  I'm always happy to talk about repo tooling, one of my favourite things about p2 :-)