My server(non-stop running mina 2.0 for more than a month) died of "java.net.SocketException: Too many files open" a few days ago. I never monitored fd with lsof before. It surprises me now because a few hours after restarting my server program lsof displayed hundreds of lines like these: java 10601 root 527r FIFO 0,5 2806455 pipe java 10601 root 528w FIFO 0,5 2806455 pipe java 10601 root 529r 0000 0,9 0 2806456 eventpoll java 10601 root 530r 0000 0,9 0 2806606 eventpoll java 10601 root 531w FIFO 0,5 2806724 pipe java 10601 root 532r 0000 0,9 0 2806725 eventpoll java 10601 root 533r FIFO 0,5 2806726 pipe java 10601 root 534w FIFO 0,5 2806726 pipe java 10601 root 535r 0000 0,9 0 2806727 eventpoll
Does it mean that I didn't close sockets correctly? Any hint about how to narrow down my problem? Thanks a lot in advance! Zhijun Vinod Panicker wrote: > > On 11/17/06, Trustin Lee <[EMAIL PROTECTED]> wrote: >> Hello Karthik, >> >> Please send your questions and ideas to [EMAIL PROTECTED] You can >> also >> subscribe to the mailing list by sending an empty message to >> [EMAIL PROTECTED] >> >> On 11/17/06, Shyamsunder, Karthik <[EMAIL PROTECTED]> wrote: >> > >> > We are am kind of stuck on a problem and we are looking for some >> > direction. We felt that you may be the right candidate. We are using >> > mina 0.9.0 on Java 5 on IBM Linux platform. Our application seems to >> run >> > fine and then after about 30 minues it starts giving " >> > java.net.SocketException: Too many files open" or >> "java.net.IOException: >> > Too many files open" errors. We have been chasing this problem down >> for 3 >> > days now. We have done all the obvious things like increaasing the >> number >> > of file descriptors which is set at a ridiculosly high number like >> 80000 and >> > no other processes are running in the OS. >> > >> > Also, another thing we noticed is that we are getting some Socket >> connect >> > exception too before all hell breaks loose. We are wondering if we are >> > using Mina incorrectly. This is because when when I go to >> /proc/pidid/fd >> > folder and look at the sockets that are open it is in thousands, but >> the >> > netstat does not show that many connections. Is it possible that we >> are not >> > closing something? Is it possible that there is a bug in Mina? I did >> track >> > an issue in 0.7.x that you had apparently fixed. >> > >> > Your quick response and thoughts and ideas will be well received. >> > >> >> 0.9.0 is way outdated version. Please upgrade to 1.0.0. It should fix >> your >> problem. > > This looks to me as an fd leak problem. Karthik, are you opening and > closing sockets in your application? If you are, then it looks like > you are not closing the sockets correctly. The 'lsof' utility will > confirm if there is a problem on your side. > > Another thing you want to make sure is that the user under which you > are running your application has that many open files available to it. > Just changing system-wide limits does not help. You need to change > user-specific limits as well. Use the 'ulimit -a' command to see how > many open files are permitted for the current user. You would want to > run the command under the same user as your application. > > As regards upgrading to a newer version, I doubt this was ever a MINA > problem - I have definitely not come across this in the 0.9 series. > > HTH, > Vinod. > > -- View this message in context: http://www.nabble.com/Re%3A-java.net.SocketException%3A-Too-many-files-open-tf2648848s16868.html#a11781367 Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.
