Description
When I created a TajoClient instance which uses a NettyClientBase on a TajoMaster's RPC handler, the following exception occurs.
java.lang.IllegalStateException: await*() in I/O thread causes a dead lock or sudden performance drop. Use addListener() instead or call await*() from a different thread. at org.jboss.netty.channel.DefaultChannelFuture.checkDeadLock(DefaultChannelFuture.java:343) at org.jboss.netty.channel.DefaultChannelFuture.await0(DefaultChannelFuture.java:307) at org.jboss.netty.channel.DefaultChannelFuture.await(DefaultChannelFuture.java:248) at com.cloudhopper.smpp.impl.DefaultSmppClient.createConnectedChannel(DefaultSmppClient.java:266) at com.cloudhopper.smpp.impl.DefaultSmppClient.doOpen(DefaultSmppClient.java:216) at com.cloudhopper.smpp.impl.DefaultSmppClient.bind(DefaultSmppClient.java:185)
There is some issues about this error in Netty 3.6. Check the following url.
https://community.jboss.org/thread/221243
This issue can be resolved by setting the deadLockChecker to false.
DefaultChannelFuture.setUseDeadLockChecker(false);
But this solution is to have a potential problem. So I suggest that NettyClientBase uses ChannelFutureListener.operationComplete() instead of awaitUninterruptibly()