Bug 187396 - [Europa] Error retrieving "plugins/org.eclipse.jdt.core_3.3.0.v_745.jar"
Summary: [Europa] Error retrieving "plugins/org.eclipse.jdt.core_3.3.0.v_745.jar"
Status: RESOLVED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 3.3   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-Update-Inbox CLA
QA Contact:
URL:
Whiteboard: obsolete
Keywords:
Depends on: 193570 193587
Blocks: 187979 192983
  Show dependency tree
 
Reported: 2007-05-16 16:51 EDT by Nick Boldt CLA
Modified: 2012-07-24 10:19 EDT (History)
4 users (show)

See Also:


Attachments
console logs (4.70 KB, application/x-zip)
2007-05-16 16:55 EDT, Nick Boldt CLA
no flags Details
screen shot w/ UM complaining about JDT jar (43.88 KB, image/png)
2007-05-28 17:42 EDT, Nick Boldt CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Boldt CLA 2007-05-16 16:51:14 EDT
Doing some testing for bug 132450. Found an apparent problem with org.eclipse.jdt.core_3.3.0.v_745.jar and/or org.eclipse.jdt.core_3.3.0.v_755.jar when trying to install via UM.

Steps to reproduce:

1. download Platform Runtime Binary 3.3.0M7 from http://fullmoon.torolab.ibm.com/downloads/drops/S-3.3M7-200705031400/linPlatform.php#EclipseSDK

2. unpack, use clean workspace. Here's my script:

#!/bin/bash
rm -fr /tmp/workspace-clean eclipse
tar xzf eclipse-platform-3.3M7-linux-gtk.tar.gz
./eclipse/eclipse -vm /opt/sun-java2-5.0/bin/java -data /tmp/workspace-clean -consolelog &

3. log console errors to file (see attached files)

4. launch Eclipse. Dispose Welcome screen (click the X).

5. Help > Software Updates > Find and install...
6. Search for new features to install > Next
7. [x] Europa Discovery Site (or you can add the staging site -- either one fails: http://download.eclipse.org/releases/europa/staging/site.xml)
8. select main Eclipse.org mirror (bottom of the list)
9. expand twisty 'Europa Discovery Site' (or staging site)
10. expand twisty 'Java Development' *** WAIT up to 5 seconds if using staging site ***
11. [x] Eclipse Plug-in Development Environment 3.3.0
12. click 'Select Required' *** WAIT up to 90 seconds if using staging site *** 
13. click Next, accept licenses, Next > Finish
14. Update operation has failed [OK]

!SESSION 2007-05-16 16:40:35.070 -----------------------------------------------
eclipse.buildId=I20070503-1400
java.version=1.5.0_09
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Framework arguments:  -startup /home/nickb/eclipse/m7clean/eclipse/plugins/org.eclipse.equinox.launcher_1.0.0.v20070502.jar
Command-line arguments:  -os linux -ws gtk -arch x86 -startup /home/nickb/eclipse/m7clean/eclipse/plugins/org.eclipse.equinox.launcher_1.0.0.v20070502.jar -data /tmp/workspace-clean -consolelog

!ENTRY org.eclipse.update.core 4 0 2007-05-16 16:46:14.400
!MESSAGE Error retrieving "plugins/org.eclipse.jdt.core_3.3.0.v_745.jar". [error in opening zip file]
!STACK 0
java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:203)
        at java.util.jar.JarFile.<init>(JarFile.java:132)
        at java.util.jar.JarFile.<init>(JarFile.java:112)
        at org.eclipse.update.internal.jarprocessor.JarProcessor.processJar(JarProcessor.java:301)
        at org.eclipse.update.internal.core.FeaturePackagedContentProvider.retrieveLocalJar(FeaturePackagedContentProvider.java:256)
        at org.eclipse.update.internal.core.FeaturePackagedContentProvider.getPluginEntryArchiveReferences(FeaturePackagedContentProvider.java:179)
        at org.eclipse.update.internal.operations.UpdateUtils.downloadFeatureContent(UpdateUtils.java:628)
        at org.eclipse.update.internal.ui.wizards.InstallWizard2.download(InstallWizard2.java:426)
        at org.eclipse.update.internal.ui.wizards.InstallWizard2.access$3(InstallWizard2.java:397)
        at org.eclipse.update.internal.ui.wizards.InstallWizard2$3.run(InstallWizard2.java:350)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.core.runtime 8 1 2007-05-16 16:46:31.893
!MESSAGE

I've tried this with IBM JDK 5.0 and Sun JDK 5.0, with both staging and current Europa sites. The long timeouts are due to 404s and missing digests, I believe. Makes a helluva difference. ;-)
Comment 1 Nick Boldt CLA 2007-05-16 16:55:12 EDT
Created attachment 67525 [details]
console logs

first pass: using IBM JDK 5.0, attempt to install GMF + all dependencies (which includes PDE and JDT).
second pass: try just PDE + JDT
third pass: try PDE + JDT from staging site
fourth pass: try PDE + JDT from staging site, with Sun JDK 5.0
Comment 2 Nick Boldt CLA 2007-05-16 17:00:06 EDT
(In reply to comment #0)
> 12. click 'Select Required' *** WAIT up to 90 seconds if using staging site *** 

Correction: this took 35-45 seconds. The 90 second delay was when I tried to 'Select Required' on GMF (lots more features to process). 
Comment 3 Olivier Thomann CLA 2007-05-16 17:10:49 EDT
We don't build the jar.
The same jar provided with the SDK works fine.
Moving to Platform/Releng.
Was the jar file properly transferred to the update site?
Comment 4 Nick Boldt CLA 2007-05-16 18:37:18 EDT
(In reply to comment #3)
> The same jar provided with the SDK works fine.

Confirmed, starting from the SDK instead of the Platform Binary works great. 

I have to assume the problem's with the Update site, then. If the file's there, it's corrupt (pack200 problem?). If it's missing, there's a problem in the Europa-matic files or somewhere upstream between 'build the zips' and 'build the UM site'.
Comment 5 Kim Moir CLA 2007-05-17 11:08:29 EDT
This looks similar to bug 179270 which has bug 178884 as the root cause.

I don't think using org.eclipse.jdt.core_3.3.0.v_745.jar  is a valid test.  This jar is from M6 and the jar processor issues in bug 178884 were not fixed for M6.
Howerver, the org.eclipse.jdt.core_3.3.0.v_755 from M7 should not have this problem because I remember using a new update core in our builder right before we released the milestone.  Apparently there is now a problem.

Andrew, was a Sun and IBM JDK 5.0 tested as part of the verification for bug 178884?  I know the original bug had problems with 1.6 JDKs on Linux.

Comment 6 Kim Moir CLA 2007-05-17 11:31:21 EDT
Nope, it's a problem with the europa build scripts.  Sorry Andrew for the false alarm.  

In my update site
kmoir@node1:/home/data/httpd/download.eclipse.org/eclipse/updates/3.3milestones/plugins> pwd
/home/data/httpd/download.eclipse.org/eclipse/updates/3.3milestones/plugins
kmoir@node1:/home/data/httpd/download.eclipse.org/eclipse/updates/3.3milestones/plugins> ls -ld  org.eclipse.jdt.core_3.3.0.v_755.jar*
-rw-r--r-- 1 sdimitro eclipseadmin 4121211 2007-05-04 15:30 org.eclipse.jdt.core_3.3.0.v_755.jar
-rw-r--r-- 1 sdimitro eclipseadmin 1459396 2007-05-04 15:30 org.eclipse.jdt.core_3.3.0.v_755.jar.pack.gz

In the europa staging site
kmoir@node1:/home/data/httpd/download.eclipse.org/releases/europa/staging/plugins> pwd
/home/data/httpd/download.eclipse.org/releases/europa/staging/plugins
kmoir@node1:/home/data/httpd/download.eclipse.org/releases/europa/staging/plugins> ls -ld  org.eclipse.jdt.core_3.3.0.v_755.jar*
-rw-rw-r--+ 1 bfreeman callistoadmin 4121211 2007-05-16 21:41 org.eclipse.jdt.core_3.3.0.v_755.jar
-rw-rw-r--+ 1 bfreeman callistoadmin       0 2007-05-16 21:41 org.eclipse.jdt.core_3.3.0.v_755.jar.pack.gz

Note that the packed jar has a size of zero on the Europa staging site.  Obviously something is happening in the packing phase of the Europa build that is causing issues.  Moving the cross project and cc'ing Bjorn.

Bjorn, what version of the jar processor are you using in your build?
Comment 7 Kim Moir CLA 2007-05-17 14:30:24 EDT
On a related note, Andrew will release this fix for RC1

Protect against JarProcessor exceptions
bug 187580

Comment 8 Bjorn Freeman-Benson CLA 2007-05-19 18:44:12 EDT
(In reply to comment #6)
> Nope, it's a problem with the europa build scripts.  
> Bjorn, what version of the jar processor are you using in your build?

I am using the eclipse 3.3M7 distro and all its included jars. I just re-ran the build and am getting three zero-sized packed jars:
:~/downloads/releases/europa/staging> ls -l plugins/ | grep " 0 2007"
-rw-rw-r--+ 1 bfreeman callistoadmin        0 2007-05-19 18:30 org.eclipse.birt.report.engine_2.2.0.v20070518.jar.pack.gz
-rw-rw-r--+ 1 bfreeman callistoadmin        0 2007-05-19 18:32 org.eclipse.jdt.core_3.3.0.v_755.jar.pack.gz
-rw-rw-r--+ 1 bfreeman callistoadmin        0 2007-05-19 18:29 org.eclipse.pde.core_3.3.0.v20070501-0010.jar.pack.gz
I removed all three so that the downloads and installs will work, but I'm not sure what to try next. Kim?
Comment 9 Bjorn Freeman-Benson CLA 2007-05-20 15:12:01 EDT
I forgot to put this "delete empty gz files" into the build scripts so when the build re-ran it regenerated the empty files. I have not put the delete into the Europa-matic and am re-running the build.
Comment 10 Martin Oberhuber CLA 2007-05-21 07:35:10 EDT
On 21-May-2007 morning, the bug is on the staging site again.
Unfortunately, anybody starting off with the Platform and requiring EMF will fall into this due to bug #106804 not yet being complete (EMF Runtime still needs JDT).

If I read Bjorn's comment right, having the zero-length files is expected ?

I guess what we are waiting for now, is for Bjorn to manually fix the staging site and then promote it to release such that we can check there.
Comment 11 Bjorn Freeman-Benson CLA 2007-05-21 23:58:08 EDT
(In reply to comment #10)
> If I read Bjorn's comment right, having the zero-length files is expected ?

No. The zero length files are clearer a bug in the jarPackager. I can't think of case where a valid non-zero-length jar should be Pack 200'd into a zero-length file.

> I guess what we are waiting for now, is for Bjorn to manually fix the staging
> site and then promote it to release such that we can check there.

The Europa-matic build automatically deletes zero-length files during each build now. See the "copy to staging" action in the build results (http://dash.eclipse.org/~bfreeman/europa/copy%20to%20staging-copy%20to%20staging-log.html). You should not be seeing zero-length files in the staging area at this time. (For example, as of this comment, there are no zero-length files in the staging area: 
/home/data/httpd/download.eclipse.org/releases/europa/staging> ls -lR | grep " 0 2007"
/home/data/httpd/download.eclipse.org/releases/europa/staging>

However I have experienced file caching delays in synchronizing the download servers at times. If (a) you are experiencing zero-length files from the main eclipse.org servers and (b) there is no active Europa build, then please wait 20 minutes and try again. If you're still seeing zero-length files, then there is a problem in the Europa-matic.
Comment 12 Kim Moir CLA 2007-05-22 07:23:00 EDT
Bjorn, do you have the output from the packing step output to a file?

For instance, we run our packing process  - note the error log.  
<!--pack200-->
	   <java jar="${eclipse.home}/plugins/org.eclipse.equinox.launcher.jar"
	         fork="true"
		     timeout="10800000"
		     jvm="${java15-home}/bin/java"
		     failonerror="true"
		     maxmemory="768m"
		     error="${buildDirectory}/errorlog.txt"
		     dir="${buildDirectory}"
		     output="${buildDirectory}/jarprocessorlog.txt">
			<jvmarg value="-Dorg.eclipse.update.jarprocessor.pack200=${eclipse.build.configs}/../../extras" />
			<arg line="-consolelog -application org.eclipse.update.core.siteOptimizer" />
			<arg line="-jarProcessor -verbose -outputDir ${buildLabel} -processAll -pack ${repack} ${packtmp}/${archiveName}" />
		</java>

Also, how much memory are you allocating to the process - are you running out of memory?

I'm moving this bug to platform update as you said it is probably an issue with the jar processor.
Comment 13 Andrew Niefer CLA 2007-05-22 10:47:52 EDT
When I download the jars from http://download.eclipse.org/releases/europa/staging/plugins that correspond to the 0-length pack.gz files, all three of them fail to verify.  Note the failures are on .class files, and therefore are unlikely to be caused by a problem in the jarProcessor.  The 0-length files are likely caused by this.

Are these jars the input to the Europa-matic process? If so, the sources of those jars should be checked to see if they were ok coming out of their builds, or maybe they were corrupted in a copy somehow.

jarsigner -verify org.eclipse.pde.core_3.3.0.v20070501-0010.jar
jarsigner: java.lang.SecurityException: SHA1 digest error for org/eclipse/pde/in
ternal/core/exports/ProductExportOperation.class

jarsigner -verify org.eclipse.birt.report.engine_2.2.0.v20070518.jar
jarsigner: java.lang.SecurityException: SHA1 digest error for org/eclipse/birt/r
eport/engine/css/engine/value/AbstractValueFactory.class

jarsigner -verify org.eclipse.jdt.core_3.3.0.v_755.jar
jarsigner: java.lang.SecurityException: SHA1 digest error for org/eclipse/jdt/co
re/dom/Javadoc.class
Comment 14 Bjorn Freeman-Benson CLA 2007-05-22 11:50:43 EDT
(In reply to comment #13)
> Are these jars the input to the Europa-matic process? 

Yes, they are.
Comment 15 Bjorn Freeman-Benson CLA 2007-05-22 11:57:55 EDT
(In reply to comment #12)
> Bjorn, do you have the output from the packing step output to a file?

The output of the pack200 command is in the Europa-matic log:
http://dash.eclipse.org/~bfreeman/europa/pack200-pack200-log.html

> Also, how much memory are you allocating to the process - are you running out
> of memory?

Here's my command line. I'm using 1Gb of memory.
        <java
            classname="org.eclipse.equinox.launcher.Main"
            taskname="createPack200s"
            fork="true"
            jvm="${java15-home}/bin/java"
            failonerror="true"
            resultProperty="createPack200Result"
            maxmemory="1024m"
            dir="${buildDirectory}">
            <classpath>
                <fileset dir="${eclipse.home}/plugins">
                    <include name="org.eclipse.equinox.launcher_*.jar" />
                </fileset>
            </classpath>
            <jvmarg value="-Dosgi.locking=none" />
            <arg
                line="-application org.eclipse.update.core.siteOptimizer" />
            <arg
                line="-jarProcessor -verbose -outputDir ${updateSite} -pack ${updateSite}" />
        </java>

This is in /cvsroot/callisto/org.eclipse.europa.tools/build-home/createPack200s.xml
Comment 16 Nick Boldt CLA 2007-05-22 12:36:42 EDT
New problem, probably related? See bug 188375.
Comment 17 Kim Moir CLA 2007-05-24 17:31:20 EDT
Bjorn, 

Regarding comment #8, 
Are the jars correctly copied to the Europa build site before they the jar processor step runs?  

Looking at my update site on eclipse.org .. the pde core jar.pack.gz file your reference is there...

kmoir@node1:/home/data/httpd/download.eclipse.org/eclipse/updates/3.3milestones/plugins> ls -l org.eclipse.pde.core_3.3.0.v20070501-0010.jar.pack.gz
-rw-r--r-- 1 sdimitro eclipseadmin 279144 2007-05-04 15:30 org.eclipse.pde.core_3.3.0.v20070501-0010.jar.pack.gz


Comment 18 Bjorn Freeman-Benson CLA 2007-05-24 17:46:01 EDT
(In reply to comment #17)
> Are the jars correctly copied to the Europa build site before they the jar
> processor step runs?  

Kim, I'm not sure what you're asking. The Europa build loads the jar files using:
[update: org.eclipse.platform] Command-line arguments: -clean -application org.eclipse.update.core.standaloneUpdate -data /home/data/users/bfreeman/europa/org.eclipse.europa.tools/build-home/buildworkspace -debug -consolelog -command mirror -featureId org.eclipse.platform -version 3.3.0.v20070516-_19REikF-XqdF6ODRccO -from http://download.eclipse.org/eclipse/updates/3.3milestones/site.xml -to /home/data/users/bfreeman/europa/staging -ignoreMissingPlugins true

See http://dash.eclipse.org/~bfreeman/europa/Platform-org.eclipse.platform-log.html

I assumed the org.eclipse.update.core.standaloneUpdate application copied the jar files correctly.
Comment 19 Kim Moir CLA 2007-05-24 18:29:53 EDT
What I'm asking is to check for the state of the jars in the Europa build after you run org.eclipse.update.core.standaloneUpdate application to copy the jars but before you run the siteOptimizer.  Do the jars referenced in comment #8 have the same size as in the local site?

Comment 20 Bjorn Freeman-Benson CLA 2007-05-28 12:20:49 EDT
(In reply to comment #19)
> What I'm asking is to check for the state of the jars in the Europa build after
> you run org.eclipse.update.core.standaloneUpdate application to copy the jars
> but before you run the siteOptimizer.  Do the jars referenced in comment #8
> have the same size as in the local site?

The two jars that are ending as zero length (and thus being deleted by my build hack) at this time are:
europa/staging/plugins/org.eclipse.jdt.core_3.3.0.v_763.jar.pack.gz
europa/staging/plugins/org.eclipse.birt.report.engine_2.2.0.v20070518.jar.pack.gz

The affected BIRT jar on the BIRT update site is:
bfreeman@build:~/downloads/birt/update-site/plugins> ls -l *engine_2.2.0.v20070518*
-rw-rw-r-- 1 slee common 1711313 2007-05-18 05:55 org.eclipse.birt.report.engine_2.2.0.v20070518.jar
-rw-rw-r-- 1 slee common  501111 2007-05-17 17:55 org.eclipse.birt.report.engine_2.2.0.v20070518.jar.pack.gz
And on the Europa build result site, after mirroring it is:
bfreeman@build:~/europa/staging/plugins> !ls
ls -l *engine_2.2.0.v20070518*
-rw-r----- 1 bfreeman common 1711282 2007-05-28 10:02 org.eclipse.birt.report.engine_2.2.0.v20070518.jar

So, no, the jars are not the same size after the org.eclipse.update.core.standaloneUpdate is run.

Other jars, such as org.eclipse.birt.chart.runtime_2.2.0.v20070227.jar are exactly the same size pre- and post- standalongUpdate.
Comment 21 Nick Boldt CLA 2007-05-28 17:42:20 EDT
Created attachment 68972 [details]
screen shot w/ UM complaining about JDT jar

Starting with 3.3RC2 platform runtime binary, try to install JET and OCL + all upstream deps (including JDT). Attached image shows error.
Comment 22 Eric Jodet CLA 2007-06-17 14:29:19 EDT
(In reply to comment #21)
see also bug 192983
Comment 23 Eric Jodet CLA 2007-06-18 01:21:31 EDT
see https://bugs.eclipse.org/bugs/show_bug.cgi?id=192983 comment #7
bug 192983 really sounds like a dup of this bug
Comment 24 Kim Moir CLA 2007-06-18 10:05:09 EDT
Bjorn, are the any logs associated with the operation in comment #20

Moving to update for comment, I don't know why the standalone update operation would change the jar file size.
Comment 25 Bjorn Freeman-Benson CLA 2007-06-18 10:14:56 EDT
(In reply to comment #24)
Pack200 Log: http://dash.eclipse.org/~bfreeman/europa/pack200-pack200-log.html
My fix Log: http://dash.eclipse.org/~bfreeman/europa/createDigests-createDigests-log.html (see the end of the page)

> Moving to update for comment, I don't know why the standalone update operation
> would change the jar file size.

I don't either, but that's what it appears to do.
Comment 26 Nick Boldt CLA 2007-06-18 12:51:38 EDT
(In reply to comment #24)
> I don't know why the standalone update operation
> would change the jar file size.

Might be completely wrong here, but I ran into a scenario recently where the code I was using to unpack and rejar existing jars as UM jars was only including FILES but not FOLDERS. I can't recall if the filesize was affected by this, however. Anyway, might be worth comparing the zip contents to see if both the before and after versions contain zipped folders as well as the files.  `unzip -t`/`unzip -l` or Beyond Compare work great for this.
Comment 27 Kim Moir CLA 2007-06-22 10:02:38 EDT
Bjorn, please try removing the manual copy of the jdt.core jar from the Europa build.  I have just released the latest build to Europa which has a new jdt.core jar where all class files have a valid signature.
Comment 28 John Arthorne CLA 2012-07-24 10:19:14 EDT
The Eclipse Update component is no longer under development, and no longer exists in the Eclipse Platform 4.x stream. If this problem still occurs in Eclipse Platform 4.2 or later, please enter a new bug report against Equinox p2.