Bitbucket Linky Plugin(version 6.1) configured with IntelliJ IDEA Ultimate(version :2018.3.4.183.5429.30) experience sockets exhaustion

Issue #67 duplicate
Felix Kulanthaisamy created an issue

Bitbucket Linky Plugin(version 6.1) configured with IntelliJ IDEA Ultimate(version :2018.3.4.183.5429.30) experience sockets exhaustion due to idle TCP sessions not being closed fast enough. We noticed when scanning the netstat data the machine shows numerous ESTABLISHD connections to 127.0.0.1 on various ports. We discovered JetBrains IntelliJ IDEA process idea64.exe (PID 14884) displays 16,317 connections to 127.0.0.1 on a variety of ports.

Solution : Disabling BBLinky plugin helps to resolve this issue.

Log snippet from IntelliJ:

2019-03-11 06:03:47,035 [391909404] ERROR - BitbucketReferences - org.apache.http.nio.reactor.IOReactorException: Failure opening selector java.lang.IllegalStateException: org.apache.http.nio.reactor.IOReactorException: Failure opening selector at org.apache.http.impl.nio.client.IOReactorUtils.create(IOReactorUtils.java:45) at org.apache.http.impl.nio.client.HttpAsyncClientBuilder.build(HttpAsyncClientBuilder.java:666) at io.ktor.client.engine.apache.ApacheEngine.prepareClient(ApacheEngine.kt:52) at io.ktor.client.engine.apache.ApacheEngine.<init>(ApacheEngine.kt:14) at io.ktor.client.engine.apache.Apache.create(Apache.kt:19) at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:27) at io.ktor.client.HttpClientJvmKt.HttpClient(HttpClientJvm.kt:9) at io.ktor.client.HttpClientJvmKt.HttpClient$default(HttpClientJvm.kt:15) at com.atlassian.bitbucket.server.rest.BitbucketServerApiConfig.<init>(server-api.kt:38) at com.atlassian.bitbucket.server.rest.BitbucketServerApiImpl.<init>(server.kt:19) at com.atlassian.bitbucket.server.rest.BitbucketServerApi$Companion.invoke(server-api.kt:25) at com.atlassian.bitbucket.linky.rest.DefaultBitbucketRestClientProvider.bitbucketServerRestClient(rest-client-provider.kt:61) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketServerProbe$probe$2.invokeSuspend(probe-server.kt:74) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketServerProbe$probe$2.invoke(probe-server.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:84) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:162) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketServerProbe.probe(probe-server.kt:70) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketServerProbe.probeBitbucketServer(probe-server.kt:37) at com.atlassian.bitbucket.linky.discovery.ServerBitbucketRepositoryDiscoverer$discoverServerHosting$2.invokeSuspend(project-hosting.kt:187) at com.atlassian.bitbucket.linky.discovery.ServerBitbucketRepositoryDiscoverer$discoverServerHosting$2.invoke(project-hosting.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:84) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:162) at com.atlassian.bitbucket.linky.discovery.ServerBitbucketRepositoryDiscoverer.discoverServerHosting(project-hosting.kt:184) at com.atlassian.bitbucket.linky.discovery.ServerBitbucketRepositoryDiscoverer$discover$2.invokeSuspend(project-hosting.kt:154) at com.atlassian.bitbucket.linky.discovery.ServerBitbucketRepositoryDiscoverer$discover$2.invoke(project-hosting.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:84) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:162) at com.atlassian.bitbucket.linky.discovery.ServerBitbucketRepositoryDiscoverer.discover(project-hosting.kt:148) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesDiscoveryService$discoverBitbucketRepositories$2.invokeSuspend(project-hosting.kt:66) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesDiscoveryService$discoverBitbucketRepositories$2.invoke(project-hosting.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:84) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:162) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesDiscoveryService.discoverBitbucketRepositories(project-hosting.kt:56) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesService$discoveryTask$1$1.invokeSuspend(project-repositories.kt:44) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32) at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:236) at kotlinx.coroutines.EventLoopBase.processNextEvent(EventLoop.kt:123) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:69) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:45) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:35) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesService$discoveryTask$1.invoke(project-repositories.kt:43) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesService$discoveryTask$1.invoke(project-repositories.kt:30) at com.atlassian.bitbucket.linky.discovery.DefaultBitbucketRepositoriesService$sam$java_lang_Runnable$0.run(project-repositories.kt) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 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: org.apache.http.nio.reactor.IOReactorException: Failure opening selector at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.<init>(AbstractMultiworkerIOReactor.java:144) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.<init>(DefaultConnectingIOReactor.java:79) at org.apache.http.impl.nio.client.IOReactorUtils.create(IOReactorUtils.java:43) ... 51 more Caused by: java.io.IOException: Unable to establish loopback connection at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:94) at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:61) at java.security.AccessController.doPrivileged(Native Method) at sun.nio.ch.PipeImpl.<init>(PipeImpl.java:171) at sun.nio.ch.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:50) at java.nio.channels.Pipe.open(Pipe.java:155) at sun.nio.ch.WindowsSelectorImpl.<init>(WindowsSelectorImpl.java:127) at sun.nio.ch.WindowsSelectorProvider.openSelector(WindowsSelectorProvider.java:44) at java.nio.channels.Selector.open(Selector.java:227) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.<init>(AbstractMultiworkerIOReactor.java:142) ... 53 more Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67) at sun.nio.ch.PipeImpl$Initializer$LoopbackConnector.run(PipeImpl.java:121) at sun.nio.ch.PipeImpl$Initializer.run(PipeImpl.java:76) ... 62 more

Comments (4)

  1. Jon Egan

    Saw the same behavior with this plugin enabled. Even with no projects open, the count of socket connections grows until reaching the OS limit. Leaving IDEA open overnight, I saw the number of open socket connections grow by about 2000 per hour. Restarting IDEA dropped the number back down under 100, and it would start growing again. I didn't realize it was related to this plugin until I saw this issue write-up. Since I disabled the plugin, the number of connections has not been growing over time.

  2. Daniil Penkin staff

    Hello @Felix_Kulanthaisamy, @JonEgan,

    Thanks for reporting this. It is indeed a bug which was fixed in version 6.2 back in January. Please upgrade to the latest version (6.3 at the moment) to get fixes for this issue as well as for couple other things.

    Cheers, Daniil

  3. Log in to comment