Hey,

The locking happens when we are loading the profile. Probably just to make sure that we are indeed loading the last one and prevent other writes. That said, given that the install is read only, the director should figure out that and do something about it (maybe just stop early and cleanly, or create a configuration in the ~/.eclipse/ like it would at runtime).

Please open a bug about this,

Pascal

On 09/16/2013 03:26 AM, Mikhail Kalkov wrote:
Hi p2 masters,

I've just tried to run these two commands (with and without -verifyOnly) but 
got an error message in both cases.
eclipse-platform -nosplash -application org.eclipse.equinox.p2.director 
-destination /path/to/readonly/targeteclipse -listInstalledRoots
eclipse-platform -nosplash -application org.eclipse.equinox.p2.director 
-destination /path/to/readonly/targeteclipse -listTags
!ENTRY org.eclipse.osgi 4 0 2013-09-13 15:36:25.612
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Profile not locked due to exception: 
/path/to/readonly/targeteclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/epp.package.cpp.profile/.lock
 (Permission denied)
         at 
org.eclipse.equinox.internal.p2.engine.ProfileLock.lock(ProfileLock.java:106)
         at 
org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.restore(SimpleProfileRegistry.java:502)
         at 
org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.getProfileMap(SimpleProfileRegistry.java:338)
         at 
org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.internalGetProfile(SimpleProfileRegistry.java:248)
         at 
org.eclipse.equinox.internal.p2.engine.SimpleProfileRegistry.getProfile(SimpleProfileRegistry.java:178)
         at 
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.getProfile(DirectorApplication.java:479)
         at 
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.initializeProfile(DirectorApplication.java:483)
         at 
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.performListInstalledRoots(DirectorApplication.java:1317)
         at 
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.run(DirectorApplication.java:1067)
         at 
org.eclipse.equinox.internal.p2.director.app.DirectorApplication.start(DirectorApplication.java:1245)

Actually, before running the two commands above I tried running the following 
one and it failed with the same message.
eclipse-platform -nosplash -application org.eclipse.equinox.p2.director 
-repository 
http://download.eclipse.org/releases/juno,http://plantuml.sourceforge.net/updatesite
 -installIU net.sourceforge.plantuml.feature.feature.group -verifyOnly 
-destination /path/to/readonly/targeteclipse
Shouldn't the use of -verifyOnly as well as -listInstalledRoots and -listTags 
mean that nothing gets written to the destination? And if locking is necessary 
in order to avoid concurrent changes to the profile, why does the following 
command work? Is p2 data area copied, linked or something else happens?
/path/to/readonly/targeteclipse -nosplash -application 
org.eclipse.equinox.p2.director -listInstalledRoots -configuration usercgfarea
Kind regards,
Mikhail Kalkov

Purple Scout AB
Software Developer

Address: Kyrkogatan 20-22, SE-41110 Gothenburg, Sweden
Phone:   +46 (0) 732 - 051405
E-mail:  [email protected]
Web:     www.purplescout.se
_______________________________________________
p2-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/p2-dev

_______________________________________________
p2-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/p2-dev

Reply via email to