Activity

I took a quick look at this. The NPE above is probably because socket is not yet set in DFSClient when we go to handlConnectionFailure. I'm not sure how the checksum error over in DFS results in leaking socket or file handles. Should do up a test that reproduces the checksum error.

stack
added a comment - 18/Dec/09 00:11 I took a quick look at this. The NPE above is probably because socket is not yet set in DFSClient when we go to handlConnectionFailure. I'm not sure how the checksum error over in DFS results in leaking socket or file handles. Should do up a test that reproduces the checksum error.

Moving out of 0.20.3. Our handling of a checksum failure makes for pretty abysmal results – thousands of sockets used up on host node – but fix need consideration. Lets not let it get in the way of 0.20.3. I'll leave it as blocker.

stack
added a comment - 28/Dec/09 22:59 Moving out of 0.20.3. Our handling of a checksum failure makes for pretty abysmal results – thousands of sockets used up on host node – but fix need consideration. Lets not let it get in the way of 0.20.3. I'll leave it as blocker.

In general, a RuntimeException in close() will percolate up the stack eliciting unexpected errors. In this case, the file descriptor ulimit was exceeded, resulting in a NPE.
The change is to protect close(). In addition to the general case, close() checks for a partially built Connection object as needed.

Richard Lackey
added a comment - 12/Aug/10 15:07 This change applies to trunk. It is a common problem highlighted in hbase-2042 ( https://issues.apache.org/jira/browse/HBASE-2042 ).
The change is isolated to Hadoop common: org.apache.hadoop.ipc.Client.java Connection.close() svn: 982681
In general, a RuntimeException in close() will percolate up the stack eliciting unexpected errors. In this case, the file descriptor ulimit was exceeded, resulting in a NPE.
The change is to protect close(). In addition to the general case, close() checks for a partially built Connection object as needed.
The proposed patch is attached.