mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Valliere <jon.valli...@emoten.com>
Subject Re: leaking NioProcessors/NioSocketConnectors hanging in call to dispose
Date Mon, 16 Oct 2017 14:20:24 GMT
If you can figure out a reproducible test case then I'm sure that we can
fix it.

On Mon, Oct 16, 2017 at 10:01 AM Christoph John <christoph.john@macd.com>
wrote:

> Hi Emmanuel,
>
> yes, but unfortunately it did not help.
>
> Thanks,
> Chris.
>
>
> On 16/10/17 15:41, Emmanuel Lécharny wrote:
> > Hi Christoph,
> >
> >
> > have you tried with this patch ? :
> >
> >
> > diff --git
> >
> a/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
> >
> b/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
> > index 50ebd4e..575b2f4 100644
> > ---
> >
> a/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
> > +++
> >
> b/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoProcessor.java
> > @@ -695,8 +695,9 @@
> >                           for (Iterator<S> i = allSessions();
> i.hasNext();) {
> >                               IoSession session = i.next();
> >
> > +                            scheduleRemove((S) session);
> > +
> >                               if (session.isActive()) {
> > -                                scheduleRemove((S) session);
> >                                   hasKeys = true;
> >                               }
> >                           }
> >
> >
> > Le 16/10/2017 à 14:41, Christoph John a écrit :
> >> Hi Emmanuel, Jonathan,
> >>
> >> thanks for your patches. Unfortunately neither of them does correct
> >> the problem I am facing.
> >> I'd suggest that I'll try to reproduce this with a MINA-based test
> >> first. Otherwise it is probably just guess-work.
> >>
> >> Thanks for your help and best regards,
> >> Chris.
> >>
> >>
> >> On 11/10/17 16:14, Jonathan Valliere wrote:
> >>> Basically my proposed patch moves the check dispose conditional into a
> >>> finally loop forcing it to run even if exceptions were caught.
> >>>
> >>> If the SSLFilter did something weird then it would be blocked on that
> >>> filter. What is happening is that the Processor is not dying as
> >>> requested.
> >>> That's why I think my patch ought to resolve the problem.
> >>>
> >>> On Wed, Oct 11, 2017 at 10:05 AM Emmanuel Lécharny <
> elecharny@gmail.com>
> >>> wrote:
> >>>
> >>>> Le 11/10/2017 à 14:51, Christoph John a écrit :
> >>>>> Thanks, will try. Did this patch apply to 2.0.16? The line numbers
do
> >>>>> not match. I have added it manually in line 1162 and removed the
> >>>>> statement from line 1164.
> >>>> It's for 2.0.17-SNAPSHOT, so you may have differences with 2.0.16, but
> >>>> minor.
> >>>>
> >>>> The idea here is to remove a session when it's i teh list of managed
> >>>> version, even if it's not valid (that might be a corner case when teh
> >>>> SSLFilter does not properly handle an exception and close the channel.
> >>>> Call it a workaround atm)
> >>>>
> >>>> --
> >>>> Emmanuel Lecharny
> >>>>
> >>>> Symas.com
> >>>> directory.apache.org
> >>>>
> >>>>
>
> --
> Christoph John
> Development & Support
> Direct: +49 241 557080-28
> Mailto:Christoph.John@macd.com
>
>
>
> http://www.macd.com <http://www.macd.com/>
>
> ----------------------------------------------------------------------------------------------------
>
>
> ----------------------------------------------------------------------------------------------------
> MACD GmbH
> Oppenhoffallee 103
> D-52066 Aachen
> Tel: +49 241 557080-0 | Fax: +49 241 557080-10
>          Amtsgericht Aachen: HRB 8151
> Ust.-Id: DE 813021663
>
> Geschäftsführer: George Macdonald
>
> ----------------------------------------------------------------------------------------------------
>
>
> ----------------------------------------------------------------------------------------------------
>
> take care of the environment - print only if necessary
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message