Bug #3694
openSharing installation among users fails, users must have write permission
0%
Description
Jianwu Wang writes:
Hi all,
One of our partner has the following requirements, which I think it is >quite common.
They want to install Kepler on one machine only once and it can be shared >by multiple users. So Kepler was installed by root user and it was started >through kepler.sh command by other users. But we got the following exception:regArray: >org.ecoinformatics.ecogrid.registry.stub.RegistryEntryArrayType@312ae32c
ERROR >(org.ecoinformatics.seek.ecogrid.SearchRegistryAction:queryRegistryRewriteConfig:246) >Problem writing new services to config file
Unable to process kar file: /home/invite/SANDIEGO/kepler/./kar/actors/ImageJ.karThe exception is because that the user do not the right to write the config >file.
To make Kepler sharable by multiple users, can we divide the config file
into public part and private part so that each user can read the public part
from the $Kepler directory and write the private part into private file, such
as in $HOME/.kepler directory?
To go future and make actors sharable, can we also divide the config file of >actors into public part and private part so that each user can use the public >actors from the $Kepler directory and private actors from private file, such >as in $HOME/.kepler directory? In this way, each user can make/import his/her >own kar files and use the actors.
I noticed this yesterday . . .
Under Windows 2003 Server, I installed Kepler 1.0.0 as adminstrator
and then ran Kepler by clicking on the icon as non-administrator and
the following appeared in a console window that was brought up by Kepler:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: keplerLog4J.log (Access is denied)
at java.io.FileOutputStream.openAppend(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:272)
at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java
:156)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:151)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:2
47)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.j
ava:123)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.j
ava:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigura
tor.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigura
tor.java:603)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyC
onfigurator.java:500)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurato
r.java:406)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurato
r.java:432)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionCon
verter.java:460)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:113)
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:1
02)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactory
Impl.java:525)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactory
Impl.java:272)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
at org.ecoinformatics.util.Config.<clinit>(Config.java:90)
at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:63)
at org.kepler.loader.Kepler.main(Kepler.java:100)
KAR Library directories: [C:\Program Files\Kepler\kar\actors, C:\Program Files\K
epler\kar\directors]
regArray: org.ecoinformatics.ecogrid.registry.stub.RegistryEntryArrayType@312ae3
2c
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.EcoGridServicesController:mergeServicesLi
st:392) could not add service:The service type is invalid or null: KeplerSlaveNo
de. Couldn't be added to list
ERROR (org.ecoinformatics.seek.ecogrid.SearchRegistryAction:queryRegistryRewrite
Config:246) Problem writing new services to config file
And this stack trace occurred in a stack trace window:
java.io.FileNotFoundException: C:\Program Files\Kepler\lib\config.xml (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at edu.ucsb.nceas.configxml.ConfigXML.saveDOM(ConfigXML.java:648)
at edu.ucsb.nceas.configxml.ConfigXML.save(ConfigXML.java:622)
at org.ecoinformatics.util.Config.save(Config.java:392)
at org.ecoinformatics.seek.ecogrid.EcoGridServicesController.writeServicesToConfig(EcoGridServicesController.java:937)
at org.ecoinformatics.seek.ecogrid.SearchRegistryAction.queryRegistryRewriteConfig(SearchRegistryAction.java:241)
at org.kepler.gui.KeplerInitializer$1.run(KeplerInitializer.java:215)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
_Christopher
Updated by jianwu jianwu almost 16 years ago
Currently, there is still the same exception for us. But each user can run Kepler and import his/her new actors into Kepler. Each user just establish his/her own kar files and import them to kepler independently. Other users can not see the imported actors unless they import by themselves.
Our test environment: Mandriva Linux 64 bit, 2007 spring. JVM 1.6 update 10. Kepler version: 8405, PTII version: 51666.
Updated by jianwu jianwu almost 16 years ago
We managed to make it works on our environments (Mandriva Linux 64 bit, 2007 spring. JVM 1.6 update 10. Kepler version: 8405, PTII version: 51666. ). Our solution is simple: just delete the jar files from the ImageJ.kar and modify the corresponding MANIFEST.MF. The ImageJ actor can still be used with this modification. We think the reason of previous exception is that Kepler wants to write this actor info into config file as a new service.
Updated by jianwu jianwu almost 16 years ago
We still have one error left:
ERROR (org.ecoinformatics.seek.ecogrid.SearchRegistryAction:queryRegistryRewriteConfig:246) Problem writing new services to config file
Other users can still use Kepler with this error. And if we comment this line, we can still use Kepler without this error.
Jing, I reassigned this bug to you because you are the author of this class (SearchRegistryAction). Would you please have a look up of this code? Thanks.
Updated by Christopher Brooks over 14 years ago
This is fixed.
I installed Kepler-2.0-rc1 on a Windows 2003 Server as Administrator.
I can start up Kepler as a non-admin user.
Updated by Christopher Brooks over 14 years ago
I closed to soon, it looks like the non-admin has no actors listed in the palette.
Should this be fixed for 2.0?