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

Bug 311645

Summary: [shared] In a shared installation, Help -> About / Installation Details fails
Product: [Eclipse Project] Equinox Reporter: Tom Houser <tmhouser>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: dj.houghton, john.arthorne, pascal, pquiring, simon_kaegi, susan, thomas
Version: 3.6   
Target Milestone: 3.6 RC1   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on: 306402    
Bug Blocks:    
Attachments:
Description Flags
log file with exceptions
none
the .log file from work item 29216 none

Description Tom Houser CLA 2010-05-04 20:12:06 EDT
In Eclipse 3.6, I noticed an issue with "Help -> About Eclipse Platform / Installation Details" when a read-only admin install is being used by non-admin users.  When you clck on the Installation Details button an error dialog pops up with this message in its Details:

An internal error occurred during: "Fetching children of _SELF_".
Cannot access member 'id' in null

Also a bunch of exceptions are logged in the "<workspace>/.metadata/.log" file (see attachment).

To reproduce on Linux:

1) As root, umask 022, install the latest IBM Installation Manager (IM) 1.4 (see https://constellation.beaverton.ibm.com/cic/head/im/O/O.html).
2) Still as root, install the sample IES 3.6 offering at https://bluewhale.torolab.ibm.com/local/products/sample/36/repository, using all the defaults.  (Note: this is an old-style reconciler based install)
3) Login as a non-root user and execute the sample IES offering (e.g. launch "/opt/IBM/XYZ/eclipse" executable).
4) Click on "Help -> About Eclipse Platform".
5) In the About dialog, click on the Installation Details button.

Expected: 
  An Installation Details dialog should pop up.
Actual:
  An error dialog pops up displaying the error message above in its Details and a bunch of exceptions are logged in the "<workspace>/.metadata/.log".

This behaviour does not occur with the IES 3.4.2 or 3.5 sample offerings.

See also https://jazzop03.rtp.raleigh.ibm.com:9943/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/29217
Comment 1 Tom Houser CLA 2010-05-04 20:14:01 EDT
Created attachment 167067 [details]
log file with exceptions
Comment 2 Simon Kaegi CLA 2010-05-04 21:25:00 EDT
I'm not sure what's happened here. Shared install is something I tested for the M7 testpass and I'm running M7 right now in shared mode without any of these issues.

Looking at the logs it looks like the errors started the moment anyone tried to access the shared profile in the dropins reconciler. There is a number of errors similar to the following in the log:

Caused by: java.lang.IllegalArgumentException: Cannot access member 'id' in null
	at org.eclipse.equinox.internal.p2.metadata.expression.Member$DynamicMember.invoke(Member.java:50)
	at org.eclipse.equinox.internal.p2.metadata.expression.Member$DynamicMember.evaluate(Member.java:42)
	at org.eclipse.equinox.internal.p2.metadata.expression.Equals.evaluate(Equals.java:27)
	at org.eclipse.equinox.internal.p2.metadata.expression.Or.evaluate(Or.java:26)
	at org.eclipse.equinox.internal.p2.metadata.expression.MatchExpression.evaluate(MatchExpression.java:44)
	at org.eclipse.equinox.p2.query.ExpressionMatchQuery.isMatch(ExpressionMatchQuery.java:86)
	at org.eclipse.equinox.p2.query.ExpressionMatchQuery.perform(ExpressionMatchQuery.java:73)
	at org.eclipse.equinox.p2.query.ExpressionMatchQuery.perform(ExpressionMatchQuery.java:63)
	at org.eclipse.equinox.internal.p2.metadata.index.IndexProvider.query(IndexProvider.java:12)
	at org.eclipse.equinox.internal.p2.metadata.index.IndexProvider.query(IndexProvider.java:21)
	at org.eclipse.equinox.internal.p2.engine.SurrogateProfileHandler.addSharedProfileBaseIUs(SurrogateProfileHandler.java:56)
	
--
This is the query we use in a shared install to populate the user's profile with a lineup IU. 

Tom do you know exactly what build of Eclipse you're embedding. Does anyone know if there was a bug in the p2 metadata or query layer fixed in the last week of M7 that might have triggered this?
Comment 3 Pascal Rapicault CLA 2010-05-04 21:57:00 EDT
The same message has been seen in the context of bug #306402 which also talks about read only location. Don't know if this is something real or just a coincidence.
Comment 4 Thomas Hallgren CLA 2010-05-05 04:40:26 EDT
The patch from bug 306402 will make the stack-trace below disappear. That much is certain.
Comment 5 Tom Houser CLA 2010-05-05 12:15:22 EDT
In response to Simon's question in comment 2, at the time I ran this scenario, the sample offering was based on "eclipse-SDK-I20100426-0852-linux-gtk.zip".  The latest sample offering that is available now seems to be based on "eclipse-SDK-3.6M7-linux-gtk.zip".  I haven't run this scenario on the latest sample offering.
Comment 6 Tom Houser CLA 2010-05-05 13:00:37 EDT
I have a very similar scenario with "Help -> Install New Software..." in another work item: https://jazzop03.rtp.raleigh.ibm.com:9943/jazz/resource/itemName/com.ibm.team.workitem.WorkItem/29216.

In this scenario, the install new software dialog doesn't pop up .. nor does an error dialog.  The "<workspace>/.metadata/.log" file contains the same "java.lang.IllegalArgumentException: Cannot access member 'id' in
null" stack traces.

I suspect it is caused by the same problem, so I won't enter another bugzilla for it.
Comment 7 Tom Houser CLA 2010-05-05 13:02:54 EDT
Created attachment 167176 [details]
the .log file from work item 29216
Comment 8 John Arthorne CLA 2010-05-07 10:27:26 EDT
(In reply to comment #7)
> Created an attachment (id=167176) [details]
> the .log file from work item 29216

This error has been fixed by the patch in bug 306402. This is available in our builds *after* M7, such as I20100506-0800.

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