hgomez      2002/11/20 06:16:46

  Modified:    jk/java/org/apache/jk/common ChannelSocket.java
  Log:
  When a socket timeout exception appears 
  (why set timeout for ajp13 connections ?), the socket is not closed,
  and even if tomcat remove the thread the socket is still open and make
  webserver stuck while waiting replies to request which are no more monitored !!!!
  
  Revision  Changes    Path
  1.26      +18 -4     
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java
  
  Index: ChannelSocket.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ChannelSocket.java        31 Oct 2002 00:54:57 -0000      1.25
  +++ ChannelSocket.java        20 Nov 2002 14:16:46 -0000      1.26
  @@ -554,14 +554,28 @@
                       break;
                   }
               }
  -            this.close( ep );
           } catch( Exception ex ) {
  -            if( ex.getMessage().indexOf( "Connection reset" ) >=0 ) {
  +            if( ex.getMessage().indexOf( "Connection reset" ) >=0 ||
  +                ex.getMessage().indexOf( "Read timed out" ) >=0 ) 
                   log.info( "Server has been restarted or reset this connection");
  -            } else {
  +            else
  +                log.error( "Error, processing connection", ex);
  +        }
  +         finally {
  +             
  +             /*
  +              * Whatever happened to this connection (remote closed it, timeout, 
read error)
  +              * the socket SHOULD be closed, or we may be in situation where the 
webserver
  +              * will continue to think the socket is still open and will forward 
request
  +              * to tomcat without receiving ever a reply
  +              */
  +            try {
  +                this.close( ep );
  +            }
  +            catch( Exception ex) {
                   log.error( "Error, closing connection", ex);
               }
  -        }
  +         }
       }
   
       public int invoke( Msg msg, MsgContext ep ) throws IOException {
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to