commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Oberhuber (JIRA)" <j...@apache.org>
Subject [jira] Commented: (NET-3) [net][PATCH] TelnetInputStream.read sometimes hangs if reader thread is disabled
Date Wed, 12 Sep 2007 12:07:32 GMT

    [ https://issues.apache.org/jira/browse/NET-3?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12526756
] 

Martin Oberhuber commented on NET-3:
------------------------------------

It looks like this patch has been applied for an "1.4.x" version of Commons Net,
but I cannot find such a released version anywhere.

How can I get a version of Commons Net that's compatible with 1.4.1 but has the patch?
Are there any plans for releasing 1.4.2 or 1.5?
FYI, at Eclipse DSDP-TM (http://www.eclipse.org/dsdp/tm) we're tracking this as
https://bugs.eclipse.org/bugs/show_bug.cgi?id=202758


> [net][PATCH] TelnetInputStream.read sometimes hangs if reader thread is disabled
> --------------------------------------------------------------------------------
>
>                 Key: NET-3
>                 URL: https://issues.apache.org/jira/browse/NET-3
>             Project: Commons Net
>          Issue Type: Bug
>         Environment: Operating System: Windows XP
> Platform: PC
>            Reporter: Rob Hasselbaum
>         Attachments: hanging_read_fix.patch
>
>
> I'm trying to use TelnetClient with the reader thread disabled because I don't 
> want socket timeouts to fire during planned periods of inactivity (COM-1554).
> But when the thread is disabled, I'm finding that TelnetInputStream.read 
> occassionally hangs when I try to read output from the server.
> The problem appears to be the first while loop in __processChar, which looks 
> like this:
> synchronized (__queue)
> {
>   while (__bytesAvailable >= __queue.length - 1)
>   {
>     if(__threaded)
>     {
>       __queue.notify();
>       try
>       {
>         __queue.wait();
>       }
>       catch (InterruptedException e)
>       {
>         throw e;
>       }
>     }
>   ...
> }
> If you get into this loop and the threaded flag is false, you are stuck 
> forever. That's what's happening in my case. If I suspend the thread, I can 
> see that (__bytesAvailable) is 2048 and (__queue.length -
> 1) is also 2048, so it's an infinite loop.
> I'm not sure what triggers this, but it seems to happen most often when there 
> is a pause in server output or a pause before I initiate the next read.

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


Mime
View raw message