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