[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[p2-dev] p2 director: commands with -verifyOnly require write access to destination

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:  mikhail.kalkov@xxxxxxxxxxxxxx
Web:     www.purplescout.se