Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 328146

Summary: self update: Garbage Collector deletes most of my old "org.eclipse.equinox.launcher.win32.win32.x86" bundle, leaves on .dll behind, which makes eclipse crash
Product: [Eclipse Project] Equinox Reporter: Helmut J. Haigermoser <helmut.haigermoser>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: critical    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
A log file showing the huge problems we run into if parts of a bundle remain behind... none

Description Helmut J. Haigermoser CLA 2010-10-19 11:33:14 EDT
Build Identifier: 3.6 final

Just tried to self-update my RCP from 3.6 base to 3.6.1 base. It almost worked, but for one thing: When restarting an application error happens:

!MESSAGE Unexpected exception occurred loading manifest for bundle at the location: reference:file:plugins/org.eclipse.equinox.launcher.win32.win32.x86_<old>/.

This seems to be a huge issue since the whole SimpleConfigurator bundle seems to be unusable from that point on.

Looking closer at the issue I saw the problem: The garbage collector got rid of the no longer needed bundles, including the old "org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503" bundle. However, it could not remove one file in there, the file "eclipse_1307.dll" was still in use and remained. So, my plugins directory contains a bundle with only one file, a dll, and no manifest or plugin.xml

I was able to work around the issue by removing the lone directory including the single dll, but that's obviously no solution for our customers, so I'd like you guys to look at the problem.

Part of the question is why Eclipse seems to behave differently than my RCP. I tried to reproduce the same thing when updating Eclipse 3.6 to 3.6.1 but failed to do so. The garbage collector seemed to leave behind all "directory released" bundles in the plugins directory, it only deleted the jar'ed bundles. So, if I could tell my RCP to do the same this bug could be worked around.

Still, this nasty NullPointerException(see attached log file) leading to an unusable SimpleConfigurator bundle should be fixed despite me getting a workaround since it could cause other problems as well..

Please let me know what you think!
Helmut

Reproducible: Always

Steps to Reproduce:
1. Have a Windows RCP, base it on 3.6
2. Update that RCP to 3.6.1
3. Upon restart watch the RCP log an error and crash
Comment 1 Helmut J. Haigermoser CLA 2010-10-19 11:34:46 EDT
Created attachment 181194 [details]
A log file showing the huge problems we run into if parts of a bundle remain behind...
Comment 2 Helmut J. Haigermoser CLA 2010-10-21 08:08:58 EDT
Guys, I'm marking this as a duplicate of the real problem:
The SimpleProfileRegistry changed in 3.6 such that it does not recognize the SELF profile for our RCP anymore. Debugging the issue and recognizing the faulty part lead to a workaround we can release with but I'm still hoping we can work together in getting the profile registry fixed.. :)
Helmut

*** This bug has been marked as a duplicate of bug 304639 ***