Jan Van Besien created AVRO-1391:
------------------------------------
Summary: NettyTransceiver await called in IO thread
Key: AVRO-1391
URL: https://issues.apache.org/jira/browse/AVRO-1391
Project: Avro
Issue Type: Bug
Components: java
Affects Versions: 1.7.5
Reporter: Jan Van Besien
The NettyTransceiver does a call to channelFuture.await() in the getChannel()
method (line 271). This fails with the following exception if avro ipc is used
from within an IO thread from another avro-ipc call.
Caused by: 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:314)
at
org.jboss.netty.channel.DefaultChannelFuture.await0(DefaultChannelFuture.java:278)
...
The use case where I was able to reproduce this is when apache flume's avro
source is coupled with a custom flume sink that also uses avro-ipc to talk to
something else. In that case, the thread that ultimately does the above
getChannel() call is an "avro io thread".
--
This message was sent by Atlassian JIRA
(v6.1#6144)