You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Emmanuel Lécharny (Jira)" <ji...@apache.org> on 2023/10/25 17:10:00 UTC
[jira] [Commented] (DIRMINA-1176) Buffer overflow exception when writing messages over SSL
[ https://issues.apache.org/jira/browse/DIRMINA-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17779582#comment-17779582 ]
Emmanuel Lécharny commented on DIRMINA-1176:
--------------------------------------------
Hi [~johnnyv],
the BufferOverflow occurs because the number of enqueued message exceed the 64 mimit (MAX_QUEUED_MESSAGES):
{code:java}
/* package protected */ class SSLHandlerG0 extends SslHandler {
...
/**
* {@inheritDoc}
*/
@Override synchronized public void write(NextFilter next, WriteRequest request) throws SSLException, WriteRejectedException {
...
if (mEncodeQueue.size() == MAX_QUEUED_MESSAGES) {
throw new BufferOverflowException();
}
...{code}
Do you remind what was the rational for the addition of this hard limit? This was this commit:
https://github.com/apache/mina/commit/94a43f8e035c83b09ce72721418c3f20f8e4f084
> Buffer overflow exception when writing messages over SSL
> ---------------------------------------------------------
>
> Key: DIRMINA-1176
> URL: https://issues.apache.org/jira/browse/DIRMINA-1176
> Project: MINA
> Issue Type: Bug
> Components: Filter
> Affects Versions: 2.2.1, 2.2.3
> Reporter: Eissam Yassin
> Priority: Critical
>
> Hello,
> When many messages written over SSL we get BufferOverflowException exception:
>
> {noformat}
> 0831_07:00:31.831, "Io Exception in Em<->Gw connection named 'GW'", [INFO], T@113, T:ctm.COMM_EM.113, , , COMM_EM, EmDsectProtocolIoHandlare::exceptionCaught, "java.nio.BufferOverflowException at org.apache.mina.filter.ssl.SSLHandlerG0.write(SSLHandlerG0.java:339) at org.apache.mina.filter.ssl.SslFilter.filterWrite(SslFilter.java:380) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) at com.bmc.ctms.infra.comm.RawCommunicationLogger.filterWrite(RawCommunicationLogger.java:102) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:332) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) at org.apache.mina.filter.executor.ExecutorFilter.filterWrite(ExecutorFilter.java:595) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:1146) at org.apache.mina.core.filterchain.IoFilterAdapter.filterWrite(IoFilterAdapter.java:138) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:753) at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireFilterWrite(DefaultIoFilterChain.java:746) at org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:575) at org.apache.mina.core.session.AbstractIoSession.write(AbstractIoSession.java:520) at com.bmc.ctms.ctminfra.protocols.emdsect.EmGwProtocolManager.write(EmGwProtocolManager.java:513) at com.bmc.ctms.ctminfra.protocols.emdsect.EmGwProtocolManager.write(EmGwProtocolManager.java:473) at com.bmc.ctms.ctminfra.protocols.emdsect.EmGwProtocolManager.writeWithoutExceptions(EmGwProtocolManager.java:448) at com.bmc.ctms.common.services.Service.handleResponse(Service.java:245) at com.bmc.ctms.ctmce.Download$SlaveService.handleResponse(Download.java:251) at com.bmc.ctms.common.services.Service$3.handleEvent(Service.java:358) at com.bmc.ctms.infra.EventDispatcher$EventEntry.handleSubscriberEntryEvent(EventDispatcher.java:687) at com.bmc.ctms.infra.EventDispatcher$EventEntry.publishByUniqeID(EventDispatcher.java:673) at com.bmc.ctms.infra.EventDispatcher$EventEntry.publish(EventDispatcher.java:694) at com.bmc.ctms.infra.EventDispatcher.publish(EventDispatcher.java:194) at com.bmc.ctms.infra.EventDispatcher.publish(EventDispatcher.java:154) at com.bmc.ctms.common.Ipc2EventAdapter.handleIpcGtwMsg(Ipc2EventAdapter.java:206) at com.bmc.ctms.common.Ipc2EventAdapter$1.handleEvent(Ipc2EventAdapter.java:41) at com.bmc.ctms.infra.EventDispatcher$EventEntry.handleSubscriberEntryEvent(EventDispatcher.java:687) at com.bmc.ctms.infra.EventDispatcher$EventEntry.handleSubscribersEntryEvent(EventDispatcher.java:733) at com.bmc.ctms.infra.EventDispatcher$EventEntry.publish(EventDispatcher.java:701) at com.bmc.ctms.infra.EventDispatcher.publish(EventDispatcher.java:194) at com.bmc.ctms.infra.EventDispatcher.publish(EventDispatcher.java:154) at com.bmc.ctms.ctminfra.protocols.ipc.impl.IpcProtocolIoHandlare.messageReceived(IpcProtocolIoHandlare.java:80) at com.bmc.ctms.infra.comm.impl.CommunicationMsgHandler.messageReceived(CommunicationMsgHandler.java:124) at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:763) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:755) at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:695) at java.base/java.lang.Thread.run(Thread.java:833){noformat}
> This issues produced when using Java 11 and Java 17 on Linux.
>
> Thanks in advanced,
> Eissam Yassin
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@mina.apache.org
For additional commands, e-mail: dev-help@mina.apache.org