Page 1 of 1

IO Error: Too many open files

PostPosted:Mon Mar 12, 2012 12:05 pm
by Alexires
Trying to do a mass upload from the administrator>import repository screen, and I'm getting an error that says "IO Error: Too many open files". I can "reset" this error by logging the okmAdmin user off and logging back in again, but it seems to "get full" and happen again after a few hundred file uploads.

Also, clicking on the administrator>repository view screen gives me a "HTTP status 500" error as follows:
Code: Select all
java.lang.NoClassDefFoundError: com/openkm/servlet/admin/RepositoryViewServlet$PropertyCmp
	com.openkm.servlet.admin.RepositoryViewServlet.getProperties(RepositoryViewServlet.java:579)
	com.openkm.servlet.admin.RepositoryViewServlet.list(RepositoryViewServlet.java:461)
	com.openkm.servlet.admin.RepositoryViewServlet.doGet(RepositoryViewServlet.java:136)
	com.openkm.servlet.admin.RepositoryViewServlet.service(RepositoryViewServlet.java:95)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Using OKM 5.1.9 on Ubuntu 10.10

Re: IO Error: Too many open files

PostPosted:Tue Mar 13, 2012 6:34 pm
by pavila
Can you try the night build from http://integration.openkm.com/5.1.x/ ?

Re: IO Error: Too many open files

PostPosted:Mon May 07, 2012 6:58 am
by Alexires
This seems to have been resolved by me here: http://forum.openkm.com/viewtopic.php?f=5&t=6176#p15452
I've increased ulimit -Hn to 1000000, however, it still seems that OpenKM chokes on 1024 (the default). I'm currently looking at the run.sh file which might not be reading the ulimit properly, hence setting the java ulimit to 1024 (thus giving IO errors). I'll have a play and see if it works.

EDIT: SOLVED! Changed the value for FD_MAX in run.conf manually from "maximum" to a value just lower than the value given in ulimit -Hn (in ubuntu linux). It seems like OpenKM is using (at a max) 2050ish of the value given in ulimit -Hn (calculated by looking at htop and selecting "java -Dprogram...." then hitting the l key to show open descriptors. Scrolling to the bottom gives about 2050 (excluding mem descriptors)) so I'd imagine a value for FD_MAX of 10000 to be fine.

jllort or pavila, perhaps have a look at the run.sh script and see whether it is getting the correct value for ulimit from the system. I don't know a lot about coding, and what I read was fine, but once I changed it, I managed to import much much more of my 30,000 file directory via Import Repository than I could by leaving run.conf as it is...