Page 1 of 1

repository on nfs share

PostPosted:Wed May 26, 2010 3:11 pm
by seti
I tried to install OpenKM on a linux Ubuntu server 10.04 .
I would like to have the repository on an external NAS .

I configured the NFS share as following :

/nfs/server/repository

nfs mount is ok and I can write on the nfs folder .

Then , I change the repository.home to /nfs/server/repository in OpenKM.cfg
then I start OpenKM

login screen is ok on http://localhost:8080 but when I log with admin , I get the following error message :

Unable to create or lock file /nfs/server/repository/.lock: No locks available

On the nfs folder I can see only workspace being created so it seems not to be a right issue

Anything I'm doing wrong or missing in configuration files ?

Thanks

Code: Select all
17:05:11,501 ERROR [DirectAuthModule] Unable to create or lock file /nfs/server/repository/.lock: No locks available
javax.jcr.RepositoryException: Unable to create or lock file /nfs/server/repository/.lock: No locks available: No locks available
	at org.apache.jackrabbit.core.util.RepositoryLock.tryLock(RepositoryLock.java:138)
	at org.apache.jackrabbit.core.util.RepositoryLock.acquire(RepositoryLock.java:121)
	at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:241)
	at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557)
	at es.git.openkm.module.direct.DirectRepositoryModule.getRepository(DirectRepositoryModule.java:106)
	at es.git.openkm.module.direct.DirectAuthModule.login(DirectAuthModule.java:82)
	at es.git.openkm.module.direct.DirectAuthModule.login(DirectAuthModule.java:300)
	at es.git.openkm.api.OKMAuth.login(OKMAuth.java:65)
	at org.apache.jsp.es_git_openkm_frontend_Main.index_jsp._jspService(index_jsp.java:59)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: No locks available
	at sun.nio.ch.FileChannelImpl.lock0(Native Method)
	at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:881)
	at java.nio.channels.FileChannel.tryLock(FileChannel.java:962)
	at org.apache.jackrabbit.core.util.RepositoryLock.tryLock(RepositoryLock.java:136)
	... 33 more
java.io.IOException: No locks available
	at sun.nio.ch.FileChannelImpl.lock0(Native Method)
	at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:881)
	at java.nio.channels.FileChannel.tryLock(FileChannel.java:962)
	at org.apache.jackrabbit.core.util.RepositoryLock.tryLock(RepositoryLock.java:136)
	at org.apache.jackrabbit.core.util.RepositoryLock.acquire(RepositoryLock.java:121)
	at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:241)
	at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:557)
	at es.git.openkm.module.direct.DirectRepositoryModule.getRepository(DirectRepositoryModule.java:106)
	at es.git.openkm.module.direct.DirectAuthModule.login(DirectAuthModule.java:82)
	at es.git.openkm.module.direct.DirectAuthModule.login(DirectAuthModule.java:300)
	at es.git.openkm.api.OKMAuth.login(OKMAuth.java:65)
	at org.apache.jsp.es_git_openkm_frontend_Main.index_jsp._jspService(index_jsp.java:59)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Thread.java:619)

Re: repository on nfs share

PostPosted:Wed May 26, 2010 7:00 pm
by jllort
With user that's running OpenKM ( that starts jboss ) can you create a file named ".lock" in the same place ?

Re: repository on nfs share

PostPosted:Thu May 27, 2010 8:23 am
by seti
Yes , I can create .lock file with same user

Re: repository on nfs share

PostPosted:Thu May 27, 2010 11:59 am
by jllort
Clear all server.log

Take a look at starting jboss if there's some error message about .lock creation.

Re: repository on nfs share

PostPosted:Thu May 27, 2010 1:15 pm
by seti
thank for guiding me .

I cleared all logs in /server

I start OpenKM

then I check server.log and the first error message is this one (.lock) :
Code: Select all
2010-05-27 14:35:32,128 INFO  [org.apache.jackrabbit.core.RepositoryImpl] Starting repository...
2010-05-27 14:35:32,150 ERROR [org.apache.jackrabbit.core.RepositoryImpl] failed to start Repository: Unable to create or lock file /nfs/server/repository/.lock: No locks available
javax.jcr.RepositoryException: Unable to create or lock file /nfs/server/repository/.lock: No locks available: No locks available
the first word about repository is at the same place.
Any other error is related to .lock and missing repository

what is strange is directory workspaces is created at the NFS share so JBoss rights to write are ok !

Re: repository on nfs share

PostPosted:Thu May 27, 2010 1:59 pm
by seti
Start of an explaination ? :

The NFS (Versions 2 and 3) protocol does not support file locking .
NFS V4 does . I guess I'm using V4

I've seen many issues googling ".lock" and "NFS" .
I'll also check the synology NAS NFS configuration .

Re: repository on nfs share

PostPosted:Thu May 27, 2010 2:12 pm
by seti
I checked my exports in the NAS and tested several configuration of rw , root_squash ..

Same result . Only directory workspaces/ is created .

Re: repository on nfs share

PostPosted:Thu May 27, 2010 2:17 pm
by seti
After checking at the synology NAS wiki , i found this :

Supported versions:

NFS 2.0
NFS 3.0


correlated with what I found earlier :

The NFS (Versions 2 and 3) protocol does not support file locking .


I guess , I cannot use NFS with this NAS and OpenKM !!!

Re: repository on nfs share

PostPosted:Fri May 28, 2010 8:00 am
by jllort
Bad news

Re: repository on nfs share

PostPosted:Fri May 28, 2010 11:29 am
by seti
So i tried with a SMB share !!

this time it is default that cannot be created , resulting in authentication error at login ..


I'm close to give up !

Re: repository on nfs share

PostPosted:Wed Jun 02, 2010 2:25 pm
by seti
To summarize if someone has the same configuration .

Configuration
Ubuntu 10.04 server
NAS synology DS509+

repository declared in OpenKM.cfg as /NFS/SHARE all rights corrects

OpenKM cannot generate the .lock file on the NAS due to NFS v3 . (as far as I could go or understand with my little knowledge)

So I went to SMB share instead of NFS ..

This time everything is working ok with SMB share mounted with the correct UID and GID