[jboss-jira] [JBoss JIRA] (AS7-5408) Background org.xnio.nio.WorkerThread prevents JVM shutdown (using jboss-client.jar for remote JMX access)

Taras Tielkes (JIRA) jira-events at lists.jboss.org
Tue Aug 21 13:45:14 EDT 2012


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

Taras Tielkes commented on AS7-5408:
------------------------------------

Here's a link to a report from Red Hat engineer Rob Stryker on the "jboss-as7-dev" mailing list, essentially confirming the problems I report with such a trivial, minimal JMX client.
[http://lists.jboss.org/pipermail/jboss-as7-dev/2012-March/005679.html]

                
> Background org.xnio.nio.WorkerThread prevents JVM shutdown (using jboss-client.jar for remote JMX access)
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: AS7-5408
>                 URL: https://issues.jboss.org/browse/AS7-5408
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: JMX
>    Affects Versions: 7.1.1.Final
>         Environment: Windows XP x64, using Java 7
> Linux x64, using Java 7
>            Reporter: Taras Tielkes
>            Assignee: Stuart Douglas
>         Attachments: jboss-client-xnio-hanging-stackdump-linux.txt, jboss-client-xnio-hanging-stackdump.txt
>
>
> I'm using the "jboss-client.jar" provided in the "bin/client" directory of the 7.1.1.Final distribution.
> I'm using the code shown below to connect to various JBoss 7.1.1 instances.
> This works when the machines are reachable.
> However, when they are not, the underlying "xnio" libraries do not clean up properly. 
> Observed results: client JVM running my JMX code does not exit, since the background threads from xnio are non-deamon.
> I've attached stackdumps from both Windows and Linux x64 demonstrating the problem.
> {code}import java.io.IOException;
> import java.net.MalformedURLException;
> import java.util.HashMap;
> import javax.management.MBeanServerConnection;
> import javax.management.remote.JMXConnector;
> import javax.management.remote.JMXConnectorFactory;
> import javax.management.remote.JMXServiceURL;
> public class Demo {
> 	public static void main(String[] args) throws IOException {
> 		JMXConnector jmxConnector = null;
> 		String host = "some.unreachable.host";
> 		String port = "9999";
> 		String urlString = "service:jmx:remoting-jmx://" + host + ":" + port;
> 		try {
> 			JMXServiceURL serviceURL = new JMXServiceURL(urlString);
> 			HashMap<String, String[]> env = new HashMap<String, String[]>();
> 			String[] creds = new String[2];
> 			creds[0] = "username";
> 			creds[1] = "password";
> 			env.put(JMXConnector.CREDENTIALS, creds);
> 			jmxConnector = JMXConnectorFactory.connect(serviceURL, env);
> 			MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
> 			System.out.println("Successfully Got Connection  " + connection.getMBeanCount());
> 			jmxConnector.close();
> 		} catch (MalformedURLException e) {
> 			e.printStackTrace();
> 		} catch (IOException e) {
> 			e.printStackTrace();
> 		} finally {
> 			if (jmxConnector != null) {
> 				jmxConnector.close();
> 			}
> 		}
> 		System.exit(0);
> 	}
> }{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list