Bug 16215 - Errors during startup
Summary: Errors during startup
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 2.0   Edit
Hardware: PC All
: P1 critical (vote)
Target Milestone: 2.0 M6   Edit
Assignee: Vlad Klicnik CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 16084 16108 16302 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-05-16 21:06 EDT by DJ Houghton CLA
Modified: 2002-05-21 08:13 EDT (History)
5 users (show)

See Also:


Attachments
my .config directory zipped up. (2.74 KB, application/zip)
2002-05-16 21:09 EDT, DJ Houghton CLA
no flags Details
config.zip (3.81 KB, application/octet-stream)
2002-05-17 16:24 EDT, Rodrigo Peretti CLA
no flags Details
log file (1.18 KB, text/plain)
2002-05-19 11:54 EDT, DJ Houghton CLA
no flags Details
config directory (2.63 KB, application/zip)
2002-05-19 11:55 EDT, DJ Houghton CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description DJ Houghton CLA 2002-05-16 21:06:10 EDT
build 2002-05-16 (test build) on WinXP
IBM JRE 1.3.1

I tried to start the new build on my old workspace (from 2002-05-15) and it 
wouldn't start. I got the following message in my .log file.

!STARTUP 5/16/02 9:03 PM
Exception launching the Eclipse Platform:
!STARTUP 5/16/02 9:03 PM
java.lang.reflect.InvocationTargetException: java.lang.RuntimeException: Fatal 
Error: Unable to locate matching org.eclipse.core.runtime plugin
	at 
org.eclipse.core.internal.boot.PlatformConfiguration.locateDefaultPlugins
(PlatformConfiguration.java:2048)
	at org.eclipse.core.internal.boot.PlatformConfiguration.<init>
(PlatformConfiguration.java:845)
	at org.eclipse.core.internal.boot.PlatformConfiguration.startup
(PlatformConfiguration.java:1264)
	at org.eclipse.core.internal.boot.InternalBootLoader.initialize
(InternalBootLoader.java:511)
	at org.eclipse.core.internal.boot.InternalBootLoader.startup
(InternalBootLoader.java:857)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:732)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:450)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:189)
	at org.eclipse.core.launcher.Main.run(Main.java:632)
	at org.eclipse.core.launcher.Main.main(Main.java:465)
Comment 1 DJ Houghton CLA 2002-05-16 21:09:58 EDT
Created attachment 861 [details]
my .config directory zipped up.
Comment 2 Vlad Klicnik CLA 2002-05-17 14:44:12 EDT
*** Bug 16084 has been marked as a duplicate of this bug. ***
Comment 3 Vlad Klicnik CLA 2002-05-17 14:44:37 EDT
*** Bug 16108 has been marked as a duplicate of this bug. ***
Comment 4 Rodrigo Peretti CLA 2002-05-17 15:43:50 EDT
I've got it in 20020517. Renaming the .config folder solves it. The .config is 
available upon request.
Comment 5 Vlad Klicnik CLA 2002-05-17 16:19:54 EDT
Rodrigo, please attach the contents of .config.
I thought I knew what was happening but that theory did not pan out.
Comment 6 Rodrigo Peretti CLA 2002-05-17 16:24:06 EDT
Created attachment 874 [details]
config.zip
Comment 7 Christophe Elek CLA 2002-05-17 21:05:12 EDT
Looked at the ZIp, seems our thinking is right
...1630.xml points to file:C:/eclipse/runtime/20020515/eclipse
the next history
..2356.xml points to file:C:/eclipse/runtime/20020517/eclipse/
Reconciliation considers it as a new site, thus disable all the found features...
They ar eboth platform:/base as PlatformURL
Comment 8 Nick Edgar CLA 2002-05-18 10:09:23 EDT
*** Bug 16302 has been marked as a duplicate of this bug. ***
Comment 9 Vlad Klicnik CLA 2002-05-18 12:56:20 EDT
There are three basic scenarios that I can think of the fall info the category 
"reusing existing workspace with new build".

[A] user installs a brand new eclipse in a new install location and creates/ 
modifies a shortcut that uses the new install and existing workspace. This is 
our typical self-hosting scenario, and is what exposed this defect.

[B] user installs a brand new eclipse over top of an existing (prior version of) 
eclipse. We do not do this with build .zips, but a native installer may do this 
when applying service, possibly when doing minor version upgrade

[C] user installs a brand new eclipse into the same install location as the 
previous version, but in the process also deteted the previous version. Some 
people may do this when self hosting (ie. delete the old drop, and unzip the new 
one in its place). Native installers may also do this, possibly when doing minor 
version upgrade, and probably always when doing major version upgrade. The end 
user can also trigger this by uninstalling the old version first, and then 
installing the new one into the same location.

This defect is as a result of scenario [A]. To fix this the reconciler (on 
startup) needs to detect the fact that the install site referenced by 
platform:/base/ URL has in fact changed (the resolved old and new URLs differ). 
If this is the case, then force optimistic reconciliation regardless of what the 
reconciler was called with. We should reconcile optimistically across all 
install sites we know about (ie. should make the determination if we are in this 
situation at the start of the reconciliation process before any of the sites 
areactually processed). This fix handles the case where the new install is the 
same version, or different version of the platform.

Scenario [B]  should work with the current support. When started, we start 
running the older version of the platform, detect this, do reconcilliation 
(pessimistic because the is not "first use" scenario), force a restart that will 
notify the user that there are changes. If the user accepts the new changes, we 
configure the new features and restart (which will cause the updated platform to 
run). If the user declines the changes, we just continue with the older version. 
The user has the option to go into the update manager later and configure the 
new stuff. On single user platforms like Win the expectation is that the user 
would always accept the changes. On multi-user platforms, or shared LAN install, 
it is possible that a user defer applying the change that was made by the 
shared-install "administrator" to later.

Scenario [C] needs to be detected in Main.java launcher. If we use the bootstrap 
information in platform.cfg to get the location of BootLoader, but the location 
is no longer valid (because it references the old version that is gone), we need 
to kick in the default search for boot instead of failing. If we find boot using 
the default search algorithm (generally will locate the latest version found in 
the install location) we would also force "first use" reconcilliation 
processing. This means the reconciler would be called on startup with 
"optimistic" as the setting. Optimistic reconciliation would apply to all sites 
we know about.  Note, that if the user explicitly specified -boot on startup and 
it is bad, we will fail as today.

So, [A] needs a fix in the reconciler, and [C] needs a fix in Main.java ..... 
both for F1
Comment 10 Christophe Elek CLA 2002-05-18 17:01:04 EDT
Scenario [A]
Added method platformBaseChanged() is SiteReconciler.
Tested the following

Installed 0508 in C:\SDK 0508\
Installed 0515 + code from HEAD in C:\SDK 05015\
Start 0508 with -update -data c:\TEMP
start 0515 with -debug -data c:\TEMP
0515 opens, the log shows
!MESSAGE Install/Update WARNING:Platform URL found is different than the one
previously saved. Reconcile optimistically:file:/C:/SDK 0515/eclipse/ :
file:C:/SDK 0508/eclipse/

The reconciliation happened optimistically and the Workbench opened.
[A] fixed.
Comment 11 Christophe Elek CLA 2002-05-18 18:21:05 EDT
Pass to Vlad for Scenario [C]
Comment 12 Vlad Klicnik CLA 2002-05-18 18:53:40 EDT
Changes for [C] released into HEAD (org.eclipse.platform, 
org.eclipse.core.boot).
Comment 13 DJ Houghton CLA 2002-05-19 11:41:04 EDT
This is still a problem with 2002-05-19.
I am following scenerio [A].
Comment 14 Christophe Elek CLA 2002-05-19 11:51:45 EDT
OK, can you please attach .metata/.config directory and any .log
I presume you are moving from 0515 to 0519
Comment 15 DJ Houghton CLA 2002-05-19 11:54:19 EDT
Created attachment 884 [details]
log file
Comment 16 DJ Houghton CLA 2002-05-19 11:55:24 EDT
Created attachment 885 [details]
config directory
Comment 17 DJ Houghton CLA 2002-05-19 11:55:41 EDT
I was moving from 05-17 to 05-19.
Comment 18 Vlad Klicnik CLA 2002-05-19 11:56:39 EDT
We did not contribute update core into 0519 so scenario [A] will still be 
broken. Will be in the 0520 evening build (not the regular nightly build, the 
10pm build Jim said is being scheduled) and in the F1 build.
Comment 19 DJ Houghton CLA 2002-05-20 23:31:09 EDT
Scenerio [A] is ok in 2002-05-20. (moving from 2002-05-19)
Comment 20 Vlad Klicnik CLA 2002-05-21 08:13:07 EDT
Also verified with 0520. Closing.