Bug 240570 - Provisioning operations consume a lot of memory
Summary: Provisioning operations consume a lot of memory
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: P2 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2008-07-12 22:22 EDT by Nick Boldt CLA
Modified: 2009-09-21 11:19 EDT (History)
3 users (show)

See Also:


Attachments
script to install a feature group using p2 director (2.15 KB, application/x-sh)
2008-07-12 22:22 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 2008-07-12 22:22:18 EDT
Created attachment 107262 [details]
script to install a feature group using p2 director 

I can install the whole GMF stack without incident, but trying to install the JET SDK consistently throws OOM errors, heap errors, and problems finding/installing com.ibm.icu.base. 

Below are two console logs, showing various errors. The script I'm using is attached. Note that it must be run from the directory specified in the script as $eclipseroot (eg., ~/eclipse/34clean/p2director), which must also include a copy of eclipse-SDK-3.4-linux-gtk.tar.gz. Otherwise, you should be able to run it anywhere.

----

The script will:

1. unpack Eclipse
2. launch the p2 director 
3. echo the size of the installed dirs
4. create a link file in the dropins/ dir
5. optionally start a workbench to verify the plugins/features are available (ie., with Help > About or Help > Software Updates)

See also:

http://wiki.eclipse.org/Equinox_p2_director_application/Examples/Install_into_dropins_with_link_file

----

$ ./install_p2director.sh jet org.eclipse.jet.sdk.feature.group
[22:02:56] Unpack eclipse-SDK-3.4-linux-gtk.tar.gz ...

Using:       vm=/opt/sun-java2-5.0/bin/java and workspace=/tmp/workspace-clean-34
Installing:  org.eclipse.jet.sdk.feature.group
Destination: /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse

[22:03:07] Running p2.director ...
Installing org.eclipse.jet.sdk.feature.group 0.9.0.v20080516-07X-82Te4djSEJpBWJX.
!SESSION 2008-07-12 21:03:08.148 -----------------------------------------------
eclipse.buildId=I20080617-2000
java.version=1.5.0_09
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Framework arguments:  -application org.eclipse.equinox.p2.director.app.application -metadataRepository http://download.eclipse.org/releases/ganymede -artifactRepository http://download.eclipse.org/releases/ganymede -installIU org.eclipse.jet.sdk.feature.group -destination /x/home/nickb/eclipse/34clean/p2director -bundlepool /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse -profile org.eclipse.jet.sdk.feature.group.profile -profileProperties org.eclipse.update.install.features=true -p2.os linux -p2.ws gtk -p2.arch x86
Command-line arguments:  -os linux -ws gtk -arch x86 -data /tmp/workspace-clean-34 -consolelog -clean -application org.eclipse.equinox.p2.director.app.application -metadataRepository http://download.eclipse.org/releases/ganymede -artifactRepository http://download.eclipse.org/releases/ganymede -installIU org.eclipse.jet.sdk.feature.group -destination /x/home/nickb/eclipse/34clean/p2director -bundlepool /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse -profile org.eclipse.jet.sdk.feature.group.profile -profileProperties org.eclipse.update.install.features=true -p2.os linux -p2.ws gtk -p2.arch x86

!ENTRY org.eclipse.core.jobs 4 2 2008-07-12 21:04:20.720
!MESSAGE An internal error occurred during: "Install download 0".
!STACK 0
java.lang.OutOfMemoryError: Java heap space
Installation failed.

!ENTRY org.eclipse.equinox.p2.engine 4 4 2008-07-12 21:04:20.936
!MESSAGE An error occurred while collecting items to be installed
!SUBENTRY 1 org.eclipse.equinox.p2.artifact.repository 4 0 2008-07-12 21:04:20.937
!MESSAGE No repository found containing: com.ibm.icu.base/osgi.bundle/3.8.1.v20080530
Installed sizes:
177M    /x/home/nickb/eclipse/34clean/p2director/eclipse
32M     /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse
208M    total

[22:04:21] Link /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse from dropins/

[22:04:21] Start Eclipse workbench (to verify installation) [y/N] ? n

----

$ ./install_p2director.sh jet org.eclipse.jet.sdk.feature.group
[21:52:02] Unpack eclipse-SDK-3.4-linux-gtk.tar.gz ...

Using:       vm=/opt/sun-java2-5.0/bin/java and workspace=/tmp/workspace-clean-34
Installing:  org.eclipse.jet.sdk.feature.group
Destination: /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse

[21:52:10] Running p2.director ...
Installing org.eclipse.jet.sdk.feature.group 0.9.0.v20080516-07X-82Te4djSEJpBWJX.
!SESSION 2008-07-12 20:52:10.437 -----------------------------------------------
eclipse.buildId=I20080617-2000
java.version=1.5.0_09
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Framework arguments:  -application org.eclipse.equinox.p2.director.app.application -metadataRepository http://download.eclipse.org/releases/ganymede -artifactRepository http://download.eclipse.org/releases/ganymede -installIU org.eclipse.jet.sdk.feature.group -destination /x/home/nickb/eclipse/34clean/p2director -bundlepool /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse -profile org.eclipse.jet.sdk.feature.group.profile -profileProperties org.eclipse.update.install.features=true -p2.os linux -p2.ws gtk -p2.arch x86
Command-line arguments:  -os linux -ws gtk -arch x86 -data /tmp/workspace-clean-34 -consolelog -clean -application org.eclipse.equinox.p2.director.app.application -metadataRepository http://download.eclipse.org/releases/ganymede -artifactRepository http://download.eclipse.org/releases/ganymede -installIU org.eclipse.jet.sdk.feature.group -destination /x/home/nickb/eclipse/34clean/p2director -bundlepool /x/home/nickb/eclipse/34clean/p2director/org.eclipse.jet.sdk.feature.group/eclipse -profile org.eclipse.jet.sdk.feature.group.profile -profileProperties org.eclipse.update.install.features=true -p2.os linux -p2.ws gtk -p2.arch x86

!ENTRY org.eclipse.osgi 2 1 2008-07-12 20:52:45.241
!MESSAGE NLS missing message: Can_not_create_temp_dir in: org.eclipse.equinox.internal.p2.artifact.optimizers.messages

!ENTRY org.eclipse.osgi 2 1 2008-07-12 20:52:45.242
!MESSAGE NLS missing message: Can_not_delete_temp_dir in: org.eclipse.equinox.internal.p2.artifact.optimizers.messages

!ENTRY org.eclipse.osgi 2 1 2008-07-12 20:52:45.242
!MESSAGE NLS missing message: Empty_stream in: org.eclipse.equinox.internal.p2.artifact.optimizers.messages
Installation failed.

!ENTRY org.eclipse.equinox.p2.engine 4 4 2008-07-12 20:54:46.368
!MESSAGE An error occurred while collecting items to be installed
!SUBENTRY 1 org.eclipse.equinox.p2.artifact.repository 4 0 2008-07-12 20:54:46.368
!MESSAGE Problems downloading artifact: osgi.bundle,com.ibm.icu.base,3.8.1.v20080530.
!SUBENTRY 2 org.eclipse.ecf.identity 4 0 2008-07-12 20:54:46.368
!MESSAGE Exception connecting to http://download.eclipse.org/eclipse/updates/3.4/plugins/com.ibm.icu.base_3.8.1.v20080530.jar.
!STACK 0
java.io.FileNotFoundException: http://download.eclipse.org/eclipse/updates/3.4/plugins/com.ibm.icu.base_3.8.1.v20080530.jar
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1151)
        at org.eclipse.ecf.provider.filetransfer.retrieve.UrlConnectionRetrieveFileTransfer.openStreams(UrlConnectionRetrieveFileTransfer.java:237)
        at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:639)
        at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:381)
        at org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter.sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:95)
        at org.eclipse.equinox.internal.p2.artifact.repository.ECFTransport.transfer(ECFTransport.java:167)
        at org.eclipse.equinox.internal.p2.artifact.repository.ECFTransport.performDownload(ECFTransport.java:120)
        at org.eclipse.equinox.internal.p2.artifact.repository.ECFTransport.download(ECFTransport.java:100)
        at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:440)
...

----

(Oh, and yes, the jar is there -- http://download.eclipse.org/eclipse/updates/3.4/plugins/com.ibm.icu.base_3.8.1.v20080530.jar exists)
Comment 1 Pascal Rapicault CLA 2008-07-21 10:33:02 EDT
Like with the IDE you need to set the memory -Xms40m -Xmx256m.
Comment 2 Pascal Rapicault CLA 2009-09-21 11:19:30 EDT
Some effort has been done in this space in 3.5 but when we are loading a lot of data there is nothing much more we can do about it.