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
