[jboss-jira] [JBoss JIRA] (WFCORE-1758) WFLYCC0034: Closing leaked controller client

Martin Choma (JIRA) issues at jboss.org
Fri Sep 2 03:57:00 EDT 2016


    [ https://issues.jboss.org/browse/WFCORE-1758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13287822#comment-13287822 ] 

Martin Choma commented on WFCORE-1758:
--------------------------------------

I understand that it is very delicately piece of code. So most importantly pottential change shouldn't break anything else. If you will decide, that finalize method can be enhanced, note, there are couple of others finalize() implementation with custom logic in wildfly core, which could be checked.

DeploymentPlanImpl
RemotingModelControllerClient
ConnectionImpl
MountHandle

Errors caused by implemented finalize() method occur probably very very rarely. So users probably can't reproduce it - hence doesn't report it.

> WFLYCC0034: Closing leaked controller client
> --------------------------------------------
>
>                 Key: WFCORE-1758
>                 URL: https://issues.jboss.org/browse/WFCORE-1758
>             Project: WildFly Core
>          Issue Type: Bug
>            Reporter: Martin Choma
>            Assignee: James Perkins
>         Attachments: server.log
>
>
> We are intermittently getting "WFLYCC0034: Closing leaked controller client" from RemotingModelControllerClient#finalize method.
> I wonder, isn't implementation of RemotingModelControllerClient#finalize() method [1] example of dangerous "safety net" implementation discussed in presentation "JVM finalize pitfalls" [2] ?
> *Reproducer:*
>  1. using ibm java 1.8
> 2. setting <startup-timeout>1</startup-timeout>
> [1] https://github.com/wildfly/wildfly-core/blob/master/controller-client/src/main/java/org/jboss/as/controller/client/impl/RemotingModelControllerClient.java#L147
> [2] https://www.youtube.com/watch?v=UrGP6pfb0H8
> [3]
> {noformat}
> 05:54:10 Aug 16, 2016 5:54:10 AM org.jboss.as.controller.client.impl.RemotingModelControllerClient finalize
> 05:54:10 WARN: WFLYCC0034: Closing leaked controller client
> 05:54:10 WFLYCC0030: Allocation stack trace:
> 05:54:10 	at java.lang.Thread.getStackTrace(Thread.java:1552)
> 05:54:10 	at org.jboss.as.controller.client.impl.RemotingModelControllerClient.<init>(RemotingModelControllerClient.java:74)
> 05:54:10 	at org.jboss.as.controller.client.ModelControllerClient$Factory.create(ModelControllerClient.java:567)
> 05:54:10 	at org.wildfly.plugin.common.ManagementClient.<init>(ManagementClient.java:37)
> 05:54:10 	at org.wildfly.plugin.common.AbstractServerConnection.createClient(AbstractServerConnection.java:126)
> 05:54:10 	at org.wildfly.plugin.server.StartMojo.execute(StartMojo.java:269)
> 05:54:10 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
> 05:54:10 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> 05:54:10 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 05:54:10 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 05:54:10 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
> 05:54:10 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
> 05:54:10 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 05:54:10 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
> 05:54:10 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
> 05:54:10 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 05:54:10 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
> 05:54:10 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
> 05:54:10 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
> 05:54:10 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 05:54:10 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 05:54:10 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 05:54:10 	at java.lang.reflect.Method.invoke(Method.java:498)
> 05:54:10 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> 05:54:10 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> 05:54:10 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> 05:54:10 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list