Code review request 7132889: Possible race conditions in AbstractSelectableChannel (original) (raw)

Shirish Kuncolienkar shirishk at linux.vnet.ibm.com
Tue Aug 7 02:34:23 PDT 2012


Could I get this change reviewed please

code inspection of the AbstractSelectableChannel class shows that a timing window exists between the channel close and cancellation of the key. Which can lead to following consequences

  1. Selector registered on this channel can select the key while the channel is closed or is being closed
  2. A new key can be added to the channel while the it is closed or is being closed
  3. configureBlocking() can be invoked while the channel is closed or is being closed

One might be able to construct a testcase using a test-specific subclass of AbstractSelectableChannel, which has a synchronization point in its implementation of implCloseSelectableChannel() so that tests can be performed there. However, it would be quite an involved thing to write with clarity.

I have created a patch under http://cr.openjdk.java.net/~luchsh/7132889/



More information about the nio-dev mailing list