So just to clarify;

If we run against 2.0.14, connections using the CompressionFilter fail.

If I ...

$ git clone http://gitbox.apache.org/repos/asf/mina.git mina
$ cd mina
$ git checkout 2.0.14
$ git revert 44b58469f84ce991074cdc187b1c1f23b94cf445
$ mvn clean package

and use the JAR files from that, connections using the CompressionFilter
succeed.

So I'm pretty confident that commit
44b58469f84ce991074cdc187b1c1f23b94cf445 is the culprit. I just don't
understand the code well enough to be able to suggest why/how to fix it.

Greg


On Tue, 19 Mar 2019 at 14:39, Jonathan Valliere <[email protected]> wrote:

> Have you pulled a diff between 13 and 14 to try to narrow it down?  It’s
> always possible that there is a concurrency problem with compression filter
> which is now exposed through other changes... like what we have with SSL.
>
> On Tue, Mar 19, 2019 at 8:33 AM Greg Thomas <[email protected]>
> wrote:
>
> > Openfire - an XMPP server,
> > https://www.igniterealtime.org/projects/openfire/index.jsp - makes heavy
> > use of Apache MINA for it's I/O.
> >
> > One of the things it uses is the CompressionFilter - if clients enable
> the
> > Compression XMPP option.
> >
> > We've recently updated to a newer version of MINA, and with no other code
> > changes found that enabling compression (in XMPP clients) fails. I've
> > narrowed it down to changes between MINA 2.0.13 (where it works) and
> 2.0.14
> > through to 2.1.0 (where it doesn't) - with Openfire throwing the
> following
> > stack trace:
> >
> > java.nio.InvalidMarkException: null
> > at java.nio.Buffer.reset(Buffer.java:306) ~[?:1.8.0_162]
> > at
> >
> >
> org.apache.mina.core.buffer.AbstractIoBuffer.reset(AbstractIoBuffer.java:424)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> org.apache.mina.core.polling.AbstractPollingIoProcessor.writeBuffer(AbstractPollingIoProcessor.java:940)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> org.apache.mina.core.polling.AbstractPollingIoProcessor.flushNow(AbstractPollingIoProcessor.java:840)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> org.apache.mina.core.polling.AbstractPollingIoProcessor.flush(AbstractPollingIoProcessor.java:767)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$700(AbstractPollingIoProcessor.java:68)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1125)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> > ~[mina-core-2.0.14.jar:?]
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > ~[?:1.8.0_162]
> > at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > ~[?:1.8.0_162]
> > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]
> >
> > Narrowing down even further the commit at
> >
> >
> https://gitbox.apache.org/repos/asf?p=mina.git;a=commit;h=44b58469f84ce991074cdc187b1c1f23b94cf445
> > seems
> > to be the culprit.
> >
> > At this point, I'm drawing a blank.
> >
> > It's possible Openfire is using the CompressionFilter wrongly, which was
> > being masked until the above commit.
> >
> > It's possible the above commit doesn't do what was intended, but I don't
> > pretend to understand what it is/should be doing.
> >
> > It's possible I've got the wrong end of the stick, and it's something
> else
> > between MINA 2.0.13 and 2.0.14 that changed that is causing the problem.
> >
> > But at this point, I don't know where to start, so would appreciate any
> > pointers!
> >
> > Thanks,
> >
> > Greg
> >
>

Reply via email to