mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julien Vermillard (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (DIRMINA-830) Unconditional wait() in Read- and WriteWorker of SerialSessionImpl
Date Thu, 28 Apr 2011 07:38:03 GMT

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

Julien Vermillard resolved DIRMINA-830.

    Resolution: Fixed

> Unconditional wait() in Read- and WriteWorker of SerialSessionImpl
> ------------------------------------------------------------------
>                 Key: DIRMINA-830
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-830
>             Project: MINA
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 2.0.0, 2.0.1, 2.0.2
>         Environment: win32 x86
>            Reporter: Christian Schwarz
>            Assignee: Julien Vermillard
>              Labels: rs232, rxtx, serial
>             Fix For: 2.0.4
>         Attachments: patch.diff
> The inner worker classes of SerialSessionImpl violates the guarded block contract for
Object#wait(). Under certain conditions it is possible that a session write starved. 
> The wait loops of Read- and WriteWorker should be inside the synchronized block! We have
some starvations while writing data to or serial session. We found out that in this case the
WriteWorker-Thread waits endless for data to write. Because we write data asynchron to the
serial session, we assume that a race condition occures. One thread is inside the unguarded
WriterWorker#flushWrites() while an other invoke SerialProcessor#flush(). 
> http://download.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html
> states-> Always invoke wait inside a loop that tests for the condition being waited
for. Don't assume that the interrupt was for the particular condition you were waiting for,
or that the condition is still true.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message