Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,367,625
Community Members
 
Community Events
168
Community Groups

FishEye as non-root user

I'm trying to get FishEye running on CentOS 5.9 x64 as a non-root user. I'm able to run the server properly as root, which is clearly not desireable in terms of security. So, I have given a different user access to the FishEye install directory and the FishEye data directory, however this user is unable to start FishEye. Whenever I try to do a restore, I get the following error:

jira@serv [/sw/fecru-2.9.1]# bin/fisheyectl.sh restore -f /home/jira/FeCru-backup.zip --username username --password password --dbtype mysql --jdbcurl jdbc:mysql://localhost:3306/db_name
ERROR: problem invoking main class: com.cenqua.fisheye.ctl.Restore
java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlString
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.cenqua.crucible.hibernate.DBType.<clinit>(DBType.java:31)
at com.cenqua.fisheye.ctl.Restore.<clinit>(Restore.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:98)
at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:41)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlString
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 19 more

This same command works perfectly fine when I am root. The permessions should be setup properly, as I am able to open all of the JAR files in the /sw/fecru-2.9.1/lib directory. Is there something else that this user needs to have access to in order to run FishEye?

2 answers

1 accepted

0 votes
Answer accepted

The problem in this case was that the user that I had created was only able to open 100 simultaneous files at the same time(ulimit -n). Since there are ~200 jar files in the lib directory that FishEye needs, it could never load all of the jar files that it needed. I increased this limit to 1000 so that this particular error does not happen anymore.

Can you make sure change the ownership of those 2 directories with a -R option? Do it after you stop Fisheye and then start it as the new user.

Tried that, still the same error. I even tried permissions of 777, no change at all.

Suggest an answer

Log in or Sign up to answer
TAGS

Atlassian Community Events