Also, is possible for SocketFactory implementation to return a selectable socket (ie. socket.getChannel() is not null)?.

Raghu.

Raghu Angadi wrote:
As part of HADOOP-2346, I changed how default socketFactory creates its socket : from 'new Socket()' to 'SocketChannel.open().socket()' since DFSClient uses socket factory. As a side effect, ipc.Client ends up using this socket creation.

ipc.Client's internal response receiver is blocked on socket.getInputStream().read() as expected. But other threads can not send RPCs since their write() is blocked on a socket imlementation related lock. This lock is held by the reader. Thats pretty weird. How can it not allow read and write at the same time?

Raghu.

Reply via email to