Memory Leak In Both SSU And PN Server (Doc ID 1589914.1)

Last updated on OCTOBER 10, 2016

Applies to:

Oracle Communications Converged Application Server - Service Controller - Version 6.1.0 to 6.1.0 [Release 6.1]
Information in this document applies to any platform.

Symptoms

When testing OCCAS-SC with around 20 CPS the SSU/PN GC (Garbage collection) log shows that the memory consumption continuously increases and ends in an OutOfMemoryError:

(Wrapped: Failed request execution for ActorDistributedCache service on Member(Id=2, Timestamp=2013-09-18 10:44:36.665, Address=192.168.2.71:10117, MachineId=26951, Location=site:,process:4513)) java.lang.OutOfMemoryError: allocLargeObjectOrArray: [B, size 2248
at com.tangosol.util.Base.ensureRuntimeException(Base.java:288)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.tagException(Grid.CDB:36)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onInvokeRequest(PartitionedCache.CDB:68)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$InvokeRequest.run(PartitionedCache.CDB:1)
at com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:1)
at com.tangosol.coherence.component.util.DaemonPool$WrapperTask.run(DaemonPool.CDB:32)
at com.tangosol.coherence.component.util.DaemonPool$Daemon.onNotify(DaemonPool.CDB:66)
at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.OutOfMemoryError: allocLargeObjectOrArray: [B, size 2248
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:133)
at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1755)
at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:50)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:203)
at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:200)
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:556)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1599)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1494)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1748)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)
at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2218)
at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2349)
at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2292)
at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2271)
at oracle.axia.protocol.sip.sipeventmapping.BaseSipEvent.readExternal(BaseSipEvent.java:278)
at oracle.axia.protocol.sip.sipeventmapping.SipMessageEventImpl.readExternal(SipMessageEventImpl.java:352)
at oracle.axia.protocol.sip.sipeventmapping.SipResponseEventImpl.readExternal(SipResponseEventImpl.java:88)
at oracle.axia.protocol.sip.sipeventmapping.SipResponseInboundImpl.readExternal(SipResponseInboundImpl.java:19)
at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2042)
at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2346)
at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2292)
at oracle.axia.eventbroker.impl.common.SerializationHelper.deserializeUsingCoherence(SerializationHelper.java:164)
at oracle.axia.eventbroker.impl.common.SerializationHelper.deserialize(SerializationHelper.java:112)
at oracle.axia.eventbroker.impl.ApplicationEventBrokerImpl.getEvent(ApplicationEventBrokerImpl.java:184)
at oracle.axia.eventbroker.impl.ApplicationEventBrokerImpl.getEvent(ApplicationEventBrokerImpl.java:59)
at oracle.axia.actor.events.EventBrokerBufferImpl.getEvent(EventBrokerBufferImpl.java:650)
at oracle.axia.actor.scheduling.processor.ActorHandlerEventTarget.deliver(ActorHandlerEventTarget.java:137)
at oracle.axia.eventbroker.util.EventProxyEntryProcessor.process(EventProxyEntryProcessor.java:83)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$Storage.invoke(PartitionedCache.CDB:10)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onInvokeRequest(PartitionedCache.CDB:52)
... 6 more

 

Another side effect that can be found is "Queue full at size: 100" errors in the SSU/PN log:

2013-09-09 13:33:46,674 ERROR wm-sip_outbound-1 ProxyManagerImpl - oracle.axia.api.eventbroker.EventBrokerException: Queue full at size: 100 for target: Binary(length=16, value=0x000000035225D7EC0000000000000006)
oracle.axia.api.eventbroker.PublishEventException: oracle.axia.api.eventbroker.EventBrokerException: Queue full at size: 100 for target: Binary(length=16, value=0x000000035225D7EC0000000000000006)
at oracle.axia.eventbroker.impl.distributed.ReplicatedTargetDispatcher.dispatch(ReplicatedTargetDispatcher.java:140)
at oracle.axia.eventbroker.impl.distributed.ClusterDistributor.publish(ClusterDistributor.java:871)
at oracle.axia.eventbroker.impl.common.CommonEventBroker.publish(CommonEventBroker.java:322)
at oracle.axia.eventbroker.impl.ProtocolAdapterEventBrokerImpl.publish(ProtocolAdapterEventBrokerImpl.java:54)
at oracle.axia.protocol.impl.StatsAccumulatingProtocolAdapterEventBroker.publish(StatsAccumulatingProtocolAdapterEventBroker.java:65)
at oracle.axia.wcp.sip.engine.connector.proxy.SipEventHandler.publishEvent(SipEventHandler.java:79)
at oracle.axia.wcp.sip.engine.connector.proxy.ProxyManagerImpl.checkSendUpdatedEvent(ProxyManagerImpl.java:556)
at oracle.axia.wcp.sip.engine.connector.proxy.ProxyManagerImpl.sendMessage(ProxyManagerImpl.java:483)
at oracle.axia.wcp.sip.engine.connector.proxy.SipEventHandler.onEvent(SipEventHandler.java:25)
at oracle.axia.protocol.impl.StatsAccumulatingProtocolAdapterEventBroker$InterceptEventHandler.onEvent(StatsAccumulatingProtocolAdapterEventBroker.java:176)
at oracle.axia.protocol.impl.StatsAccumulatingProtocolAdapterEventBroker$InterceptEventHandler.onEvent(StatsAccumulatingProtocolAdapterEventBroker.java:159)
at oracle.axia.api.eventbroker.DefaultScheduler$SingleEventWork.run(DefaultScheduler.java:148)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:440)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:139)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:896)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
at java.lang.Thread.run(Thread.java:662)
Caused by: oracle.axia.api.eventbroker.EventBrokerException: Queue full at size: 100 for target: Binary(length=16, value=0x000000035225D7EC0000000000000006)
at oracle.axia.eventbroker.util.QueueingWmScheduler.schedule(QueueingWmScheduler.java:119)
at oracle.axia.eventbroker.util.ReplicatedQueueingWmScheduler.schedule(ReplicatedQueueingWmScheduler.java:107)
at oracle.axia.eventbroker.impl.distributed.ReplicatedTargetDispatcher.dispatch(ReplicatedTargetDispatcher.java:136)
at oracle.axia.eventbroker.impl.distributed.ClusterDistributor.publish(ClusterDistributor.java:873)
at oracle.axia.eventbroker.impl.ProtocolAdapterEventBrokerImpl.publish(ProtocolAdapterEventBrokerImpl.java:54)
at oracle.axia.protocol.impl.StatsAccumulatingProtocolAdapterEventBroker.publish(StatsAccumulatingProtocolAdapterEventBroker.java:66)
... 11 more

  

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms