You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Andrey Adamovich (JIRA)" <ax...@ws.apache.org> on 2009/09/29 10:38:16 UTC
[jira] Commented: (AXIS-2647) 100% CPU hang in TypeDesc.java:313
[ 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.