[jbossws-issues] [JBoss JIRA] Created: (JBWS-2879) Multiple threads: getPort Hangs on 100% CPU with fast infoset on asynchronous invocation

Hajo Krabbenhöft (JIRA) jira-events at lists.jboss.org
Mon Dec 21 03:54:30 EST 2009


Multiple threads: getPort Hangs on 100% CPU with fast infoset on asynchronous invocation
----------------------------------------------------------------------------------------

                 Key: JBWS-2879
                 URL: https://jira.jboss.org/jira/browse/JBWS-2879
             Project: JBoss Web Services
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: jbossws-native
    Affects Versions: jbossws-native-3.2.1
         Environment: jboss-5.1.0 GA
debian 64 bit
            Reporter: Hajo Krabbenhöft


Hi,
i'm caching an instance of  javax.xml.ws.Service.
I cache the results of getPort in a ThreadLocal.
When i use multiple parallel asynchronous invocations, this approach does not seem to work, so i invoke getPort for each asynchronous invocation.
I have 8 threads using a web service running in parallel on a i7.
After about 20h of work, all my worker threads are hanging on:

"pool-41-thread-7" prio=10 tid=0x00007f8cc469d400 nid=0x156a runnable [0x000000004691a000..0x0000000046921ba0]
   java.lang.Thread.State: RUNNABLE
        at java.util.HashMap.put(HashMap.java:374)
        at java.util.HashSet.add(HashSet.java:200)
        at org.jboss.ws.metadata.umdm.FeatureSet.addFeature(FeatureSet.java:63)
        at org.jboss.ws.metadata.umdm.EndpointMetaData.addFeature(EndpointMetaData.java:375)
        at org.jboss.ws.core.jaxws.client.ClientFeatureProcessor.processFeature(ClientFeatureProcessor.java:84)
        at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.initWebserviceFeatures(ServiceDelegateImpl.java:537)
        at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:526)
        at javax.xml.ws.Service.getPort(Service.java:607)
        at com.spratpix.subdomains.ThreadLocalWebserviceProxy.getAsyncPort(ThreadLocalWebserviceProxy.java:47)

Here is how i use getPort


	protected T getAsyncPort() {
		long t0 = System.nanoTime();
		try {
			return service.getPort(portClass, new FastInfosetFeature());
		} finally {
			long dt = System.nanoTime() - t0;
			TimingInterceptor.callChain.addInvocationWithMethod(method, dt);
		}
	}


And the problematic web service call seems to be

	public Future<Boolean> PutFileAsync(String domain, String type, String filename, S3Object file, AsyncHandler<Boolean> asyncHandler);




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the jbossws-issues mailing list