On 22 February 2017 at 21:20, Dennis Reed <der...@redhat.com> wrote: > Are those actually 2 million *unique* descriptors? > > I've seen lsof output that listed many duplicates for the same file > descriptor (one for each thread?), making the list appear much larger > than it really was.
Good point! You're right, I verified and all instances of e.g. the jgroups jar were using the same FD, just a different thread id. This is the full error I'm having, when running the tests from the "infinispan-compatibility-mode-it" maven module: java.lang.IllegalStateException: failed to create a child event loop at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:88) at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58) at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:51) at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:87) at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:82) at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:63) at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:51) at org.jboss.resteasy.plugins.server.netty.NettyJaxrsServer.start(NettyJaxrsServer.java:239) at org.infinispan.rest.NettyRestServer.start(NettyRestServer.java:81) at org.infinispan.it.compatibility.CompatibilityCacheFactory.createRestCache(CompatibilityCacheFactory.java:199) at org.infinispan.it.compatibility.CompatibilityCacheFactory.createRestMemcachedCaches(CompatibilityCacheFactory.java:137) at org.infinispan.it.compatibility.CompatibilityCacheFactory.setup(CompatibilityCacheFactory.java:123) at org.infinispan.it.compatibility.ByteArrayKeyReplEmbeddedHotRodTest.setup(ByteArrayKeyReplEmbeddedHotRodTest.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84) at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107) at org.testng.TestRunner.privateRun(TestRunner.java:767) at org.testng.TestRunner.run(TestRunner.java:617) at org.testng.SuiteRunner.runTest(SuiteRunner.java:348) at org.testng.SuiteRunner.access$000(SuiteRunner.java:38) at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382) at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: io.netty.channel.ChannelException: failed to open a new selector at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:157) at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:148) at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:126) at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:36) at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84) ... 32 more Caused by: java.io.IOException: Too many open files at sun.nio.ch.IOUtil.makePipe(Native Method) at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:65) at sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:36) at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:155) ... 36 more Now that I know which metrics to look at, I see that before running this specific module my system is consuming about 12K FDs, and occasionally it just stays around that same level and the integration tests will pass w/o any failure. However most of the times when I run this module specifically, I see the FD consumption increase during the test run and eventually fail with the above error. The last sample I could take before failing was around 15,5K, and not surprising as my limit is set to 16384.. so I guess it could have attempted to grow further. Tomorrow I'll try with higher limits, to see if I'm running with barely enough for this testsuite or if I see it growing more. Still sounds like a leak though, as the increase is quite significant.. Thanks, Sanne > > -Dennis > > > On 02/22/2017 02:25 PM, Sanne Grinovero wrote: >> Hi all, >> >> our documentation suggest to raise the file limits to about 16K: >> http://infinispan.org/docs/stable/contributing/contributing.html#running_and_writing_tests >> >> I already have this setup since years, yet I've been noticing errors such as: >> >> "Caused by: java.io.IOException: Too many open files" >> >> Today I decided to finally have a look, and I see that while running >> the testsuite, my system's consumption of file descriptor raises >> continuously, up to more than 2 millions. >> (When not running the suite, I'm consuming 200K - that's including >> IDEs and other FD hungry systems like Chrome) >> >> Trying to get some samples of these file descriptors, it looks like >> it's really about open files. Jar files to be more precise. >> >> What puzzles me is that taking just one jar - jgroups for example - I >> can count 7852 open instances of it, but distributed among a handful >> of processes only. >> >> My guess is classloaders aren't being closed? >> >> Also: why did nobody else notice problems? Do you all have >> reconfigured your system for unlimited FDs? >> >> Thanks, >> Sanne >> _______________________________________________ >> infinispan-dev mailing list >> infinispan-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/infinispan-dev >> > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev