[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    [jira] Commented: (AXIS-2647) 100% CPU hang in TypeDesc.java:313
From:       "Andrey Adamovich (JIRA)" <axis-dev () ws ! apache ! org>
Date:       2009-09-29 8:38:16
Message-ID: 2056487300.1254213496323.JavaMail.jira () brutus
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/AXIS-2647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12760530#action_12760530 \
] 

Andrey Adamovich commented on AXIS-2647:
----------------------------------------

We faced the same issue and fixed that by patching Axis code i.e. putting \
syncronisation blocks inside TypeDesc class to secure access to fieldElementMap.

> 100% CPU hang in TypeDesc.java:313
> ----------------------------------
> 
> Key: AXIS-2647
> URL: https://issues.apache.org/jira/browse/AXIS-2647
> Project: Axis
> Issue Type: Bug
> Components: Serialization/Deserialization
> Affects Versions: 1.4
> Environment: JDK 1.5.0_10 AMD64
> RHEL4 x64
> Reporter: Patrick Eger
> Priority: Critical
> 
> Basically we have a bunch of threads stuck within Axis consuming 100% of our CPU. \
> This appears to be during deserialization of a response (from EBay API in this \
> instance). My best guess would be some sort of thread-unsafe modification to the \
> HashMap used by getFieldNameForElement(), resulting in a corrupted internal HashMap \
>                 state and thusly infinite looping.
> ----------------------------------------------------------
> Name: http-8080-Processor51
> State: RUNNABLE
> Total blocked: 52  Total waited: 1,995
> Stack trace: 
> java.util.HashMap.get(HashMap.java:346)
> org.apache.axis.description.TypeDesc.getFieldNameForElement(TypeDesc.java:313)
> org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:197)
>  org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
>  org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
> org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
> org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
> org.apache.axis.client.Call.invoke(Call.java:2467)
> org.apache.axis.client.Call.invoke(Call.java:2366)
> org.apache.axis.client.Call.invoke(Call.java:1812)
> com.automotive.app.content.ebay.api.EBayAPISoapBindingStub.getItem(EBayAPISoapBindingStub.java:7962)
>                 
> .....
> Name: http-8080-Processor25
> State: RUNNABLE
> Total blocked: 295  Total waited: 10,588
> Stack trace: 
> java.util.HashMap.get(HashMap.java:346)
> org.apache.axis.description.TypeDesc.getFieldNameForElement(TypeDesc.java:313)
> org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:197)
>  org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
>  org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
> org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
> org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
> org.apache.axis.client.Call.invoke(Call.java:2467)
> org.apache.axis.client.Call.invoke(Call.java:2366)
> org.apache.axis.client.Call.invoke(Call.java:1812)
> com.automotive.app.content.ebay.api.EBayAPISoapBindingStub.getItem(EBayAPISoapBindingStub.java:7962)
>                 
> .....

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic