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 > > >
