Hi Ussama,

Thanks for the detailed report, and I am so happy that you are
enjoying MINA so much! :)

Cheers,
Trustin

On Nov 25, 2007 10:22 AM, ubaggili <[EMAIL PROTECTED]> wrote:
>
> Hi Trustin,
>
> Thanks for looking into this.  I was able to resolve the issue at hand and I
> hope that my feedback helps others.
>
> I'm running on OS X version 10.5 (Leopard, the latest release).  After I got
> the feeling from you that it might be something other than MINA because you
> were able to run things with another program, I tried to run one of the
> examples from trunk.  It failed at the same place where it was supposed to
> bind.. That was when I started suspecting Leopard running with the Java 1.5
> release (If you're not aware, apple pulled back and uninstalled java 6 from
> apple computers that upgraded to the latest OS X, hurting the feelings of
> all java developers who had already moved to java 6).
>
> All is well now.  I was able to get a java 6 port from
> http://landonf.bikemonkey.org/code/macosx and once I recompiled all the mina
> sources against it, as well as my program, the acceptor bound successfully.
>
> With all this said, the port from the link above is not officially supported
> by anyone, but at least people can move on on OS X Leopard (10.5) until
> Apple releases something usable.
>
> Once again, thanks for the great support..  I love MINA!
>
> -Ussama
>
>
>
> Trustin Lee wrote:
> >
> > It seems like the acceptor thread died unexpectedly while the main
> > thread waits for bind completion notification.  I tried to reproduce
> > the problem with minimal code, but my attempt ended up with failure.
> > Could you please provide source code that I can execute by myself?
> >
> > Thanks,
> > Trustin
> >
> > On Nov 24, 2007 10:50 PM, ubaggili <[EMAIL PROTECTED]> wrote:
> >>
> >> Here the source code.. I'm running on java 1.5. You I've commented out
> >> the
> >> old NioSocketAcceptor binding within it:
> >>
> >>     public static void main(String[] args) throws IOException {
> >>
> >>         IoHandlerChain chain = new IoHandlerChain();
> >>         ChainedIoHandler cih = new ChainedIoHandler(chain);
> >>
> >>         ChainedDemuxingIoHandler messageHandler = new
> >> ChainedDemuxingIoHandler();
> >>
> >>         // add the AgiRequest Message Handler
> >>         messageHandler.addMessageHandler(AgiRequest.class, new
> >> AgiRequestMessageHandler());
> >>         messageHandler.addMessageHandler(AgiCommandResponse.class, new
> >> AgiCommandResponseMessageHandler());
> >>
> >>         chain.addLast("DemuxingIoHandler", messageHandler);
> >>         chain.addLast("AgiProtocolIoHandler", new
> >> AgiProtocolIoHandler());
> >>
> >>         // SocketAcceptor acceptor = new NioSocketAcceptor(5, new
> >> NewThreadExecutor()); //<--- old invocation
> >>         SocketAcceptor acceptor = new NioSocketAcceptor(5);
> >>
> >>         acceptor.setReuseAddress(true);
> >>         acceptor.getFilterChain().addLast("protocol", new
> >> ProtocolCodecFilter(new AgiCodecFactory()));
> >>         // acceptor.getFilterChain().addLast("TestFilter", new
> >> TestFilter());
> >>         acceptor.getFilterChain().addLast("logger", new LoggingFilter());
> >>
> >>         acceptor.getFilterChain().addLast("executor", new
> >> ExecutorFilter(Executors.newCachedThreadPool()));
> >>         acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,
> >> 10);
> >>         acceptor.setLocalAddress(new InetSocketAddress(4573));
> >>         acceptor.setHandler(cih);
> >>
> >>         acceptor.bind();
> >>
> >>         System.out.println("server is listenig on port " + 4573);
> >>     }
> >>
> >>
> >> within acceptor.bind(), I've stepped through the execution to see where
> >> things hang, and it was line 150 of the AbstractPollingIoAcceptor class
> >> -->
> >> request.awaitUninterruptibly();
> >>
> >> stack for that is:
> >> org.apache.mina.transport.socket.nio.NioSocketAcceptor(org.apache.mina.common.AbstractPollingIoAcceptor<T,H>).bind0()
> >> line: 150
> >>
> >>
> >> Full Thread dump:
> >>
> >> Full thread dump Java HotSpot(TM) Client VM (1.5.0_13-119 mixed mode,
> >> sharing):
> >>
> >> "Low Memory Detector" daemon prio=5 tid=0x01008ed0 nid=0x806a00 runnable
> >> [0x00000000..0x00000000]
> >>
> >> "CompilerThread0" daemon prio=9 tid=0x010084a0 nid=0x805c00 waiting on
> >> condition [0x00000000..0xb0b077d8]
> >>
> >> "Signal Dispatcher" daemon prio=9 tid=0x01008040 nid=0x809a00 waiting on
> >> condition [0x00000000..0x00000000]
> >>
> >> "Finalizer" daemon prio=8 tid=0x01007870 nid=0x818200 in Object.wait()
> >> [0xb0a05000..0xb0a05d90]
> >>         at java.lang.Object.wait(Native Method)
> >>         - waiting on <0x25a7cd30> (a java.lang.ref.ReferenceQueue$Lock)
> >>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
> >>         - locked <0x25a7cd30> (a java.lang.ref.ReferenceQueue$Lock)
> >>         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
> >>         at
> >> java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> >>
> >> "Reference Handler" daemon prio=10 tid=0x01007490 nid=0x816a00 in
> >> Object.wait() [0xb0984000..0xb0984d90]
> >>         at java.lang.Object.wait(Native Method)
> >>         - waiting on <0x25a7cdb0> (a java.lang.ref.Reference$Lock)
> >>         at java.lang.Object.wait(Object.java:474)
> >>         at
> >> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
> >>         - locked <0x25a7cdb0> (a java.lang.ref.Reference$Lock)
> >>
> >> "main" prio=5 tid=0x01001350 nid=0xb0801000 in Object.wait()
> >> [0xb07ff000..0xb0800148]
> >>         at java.lang.Object.wait(Native Method)
> >>         - waiting on <0x2558da90> (a
> >> org.apache.mina.common.AbstractIoService$ServiceOperationFuture)
> >>         at
> >> org.apache.mina.common.DefaultIoFuture.awaitUninterruptibly(DefaultIoFuture.java:96)
> >>         - locked <0x2558da90> (a
> >> org.apache.mina.common.AbstractIoService$ServiceOperationFuture)
> >>         at
> >> org.apache.mina.common.AbstractPollingIoAcceptor.bind0(AbstractPollingIoAcceptor.java:150)
> >>         at
> >> org.apache.mina.common.AbstractIoAcceptor.bind(AbstractIoAcceptor.java:146)
> >>         - locked <0x25610638> (a java.lang.Object)
> >>         at
> >> com.xentelco.asterisk.agi.server.XenServer.main(XenServer.java:62)
> >>
> >> "VM Thread" prio=9 tid=0x01006be0 nid=0x815c00 runnable
> >>
> >> "VM Periodic Task Thread" prio=9 tid=0x01009a30 nid=0x807800 waiting on
> >> condition
> >>
> >> "Exception Catcher Thread" prio=10 tid=0x010015a0 nid=0x80b000 runnable
> >>
> >> Thanks in advance,
> >> Ussama
> >>
> >>
> >>
> >> Trustin Lee wrote:
> >> >
> >> > Could you please provide the full thread dump of the moment when your
> >> > server hangs?  Any source code would be appreciated.
> >> >
> >> > HTH,
> >> > Trustin
> >> >
> >> > On Nov 24, 2007 1:04 PM, ubaggili <[EMAIL PROTECTED]> wrote:
> >> >>
> >> >> Hey Guys,
> >> >>
> >> >> It's great to see that you're actively working on mina 2.0. I love it!
> >> >>
> >> >> I recently updated my mina 2.0 tree and for some reason, my
> >> >> NioSocketAcceptor cannot bind anymore.  I did take note of the change
> >> in
> >> >> constructor signature.  However, I need some direction.. My
> >> application
> >> >> hangs when trying to bind.  Also, it seems that the NewThreadExecutor
> >> >> class
> >> >> no longer exists?  What did this change to?  Where should I be
> >> looking?
> >> >>
> >> >> Thanks,
> >> >> Ussama
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/Binding-issues-with-NioSocketAcceptor---mina-2.0-tf4864844s16868.html#a13921865
> >> >> Sent from the Apache MINA Support Forum mailing list archive at
> >> >> Nabble.com.
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > what we call human nature is actually human habit
> >> > --
> >> > http://gleamynode.net/
> >> > --
> >> > PGP Key ID: 0x0255ECA6
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Binding-issues-with-NioSocketAcceptor---mina-2.0-tf4864844s16868.html#a13924887
> >>
> >> Sent from the Apache MINA Support Forum mailing list archive at
> >> Nabble.com.
> >>
> >>
> >
> >
> >
> > --
> > what we call human nature is actually human habit
> > --
> > http://gleamynode.net/
> > --
> > PGP Key ID: 0x0255ECA6
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/Binding-issues-with-NioSocketAcceptor---mina-2.0-tf4864844s16868.html#a13931570
>
> Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.
>
>



-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6

Reply via email to