harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Regis Xu (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-6312) Concurrency problems in NIO
Date Wed, 09 Sep 2009 06:17:57 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-6312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Regis Xu updated HARMONY-6312:

    Attachment: selector.zip

I propose patch serial in selector.zip, it is based on current HEAD.
This serial of patches keep the selector's way of handling keys, just bug fixing and improvement.

0001-remove-SelectionKeyImpl.hasCode-equals-the-old-impl.patch and 0002-synchronized-on-unmodifiableKeys.patch
is from Jesse' patch, very thanks Jesse.

0003-keep-Selector.keysSet-reflect-keys-of-selector-consi.patch fix Selector.keysSet doesn't
reflect keys consistently

0004-signal-workaround-for-drlvm.patch is workaround for a known issue of drlvm, thread blocked
on io will be interrupted by unrelated signal. This patch make sure test in patch 0005 can
be passed.

0005-remove-cancelledKeys-from-selectedKeys.patch and 0006-add-new-interface-accept-read-write-fd-count-to-avoi.patch
is from my previous patches on this issue.

> Concurrency problems in NIO
> ---------------------------
>                 Key: HARMONY-6312
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6312
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>         Environment: SVN Revision: 801399
>            Reporter: Jesse Wilson
>            Assignee: Mark Hindess
>         Attachments: cancelledkey.diff, NIO_Concurrency_issues.patch, selector.zip
>   Original Estimate: 72h
>  Remaining Estimate: 72h
> There's several potential concurrency problems in our NIO implementation...
>  - Charset#isSupported isn't synchronized, but it accesses mutable member cachedCharsetTable.
>  - In SelectionKeyImpl, stHash++ is a non-atomic operation so multiple SelectionKey instances
may receive the same hash code. (Why not use the default hash code?)
>  - In SelectorImpl, the unmodifiableKeys member is never synchronized on. But the documentation
specifies that clients can synchronize on that set to guard against changes
> These are the obvious problems; I suspect there are more subtle concurrency defects at
play here. I'll prepare a patch to address the major issues, and we should consider a rigorous
approach (Findbugs?) to discover concurrency problems.
> #Android

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message