[SPARK-3106] Fix the race condition issue about Connection and ConnectionManager

SocketChannel#read blocks a thread which calls SocketChannel#read, JavaDoc says at least.
I think waiting on channel.read()  is needed by only one thread per one channel to detect disconnection. Why re-register OP_READ is needed.