You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by "Hari Shreedharan (JIRA)" <ji...@apache.org> on 2012/11/15 02:18:12 UTC

[jira] [Commented] (SQOOP-690) Fix threading issues in SqoopOutputFormatLoadExecutor

    [ https://issues.apache.org/jira/browse/SQOOP-690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497678#comment-13497678 ] 

Hari Shreedharan commented on SQOOP-690:
----------------------------------------

Changes in the patch:

* SqoopOutputFormatLoadExecutor essentially has one reader and one writer. So use counts and yields to make sure the reader waits for the writer and vice versa.
* Some exception handling was incorrect earlier - fixed that (instead of caching the exception, it was being rethrown - without setting readerFinished to true.
* Made the internal content of Data class volatile, since it is essentially immutable - volatile is enough, no synchronization is needed (only for safe publication, not for any thread handling).


                
> Fix threading issues in SqoopOutputFormatLoadExecutor
> -----------------------------------------------------
>
>                 Key: SQOOP-690
>                 URL: https://issues.apache.org/jira/browse/SQOOP-690
>             Project: Sqoop
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: Hari Shreedharan
>            Assignee: Hari Shreedharan
>             Fix For: 2.0.0
>
>         Attachments: SQOOP-690-1.patch
>
>
> The threading uses synchronized and wait/notify in this class. wait() is called outside while loops too. We can simply this using higher level concurrency constructs like semaphores or latches.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira