You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Aaron Mulder <am...@alumni.princeton.edu> on 2004/11/16 22:44:31 UTC

Re: svn commit: rev 76008 - geronimo/trunk/modules/remoting/src/java/org/apache/geronimo/remoting/transport/async/bio

	Unfortunately, this causes all remoting closes to hang for me 
(believe it or not, it's much worse than the previous problem).  I'm on 
Linux (SuSE 9.2), and I have two bugs:
 1) SO_TIMEOUT is ignored on channels
 2) A thread blocked on accept is not unblocked by interrupt()
	I put in the change below because it solved problem #1, which
meant that an accept eventually wakes up once SO_TIMEOUT expires.  While
it seems that it causes problems elsewhere, really, that problem is less
severe.  The way it is now (after the patch below), the JVM locks up.  
With the other problem, some tests fail.

Aaron

On Tue, 16 Nov 2004 adc@apache.org wrote:

> Author: adc
> Date: Tue Nov 16 11:03:03 2004
> New Revision: 76008
> 
> Modified:
>    geronimo/trunk/modules/remoting/src/java/org/apache/geronimo/remoting/transport/async/bio/BlockingServer.java
> Log:
> Need to revisit this.
> 
> Modified: geronimo/trunk/modules/remoting/src/java/org/apache/geronimo/remoting/transport/async/bio/BlockingServer.java
> ==============================================================================
> --- geronimo/trunk/modules/remoting/src/java/org/apache/geronimo/remoting/transport/async/bio/BlockingServer.java	(original)
> +++ geronimo/trunk/modules/remoting/src/java/org/apache/geronimo/remoting/transport/async/bio/BlockingServer.java	Tue Nov 16 11:03:03 2004
> @@ -141,7 +141,7 @@
>              while (running) {
>                  SocketChannel socket = null;
>                  try {
> -                    socket = serverSocketChannel.socket().accept().getChannel();
> +                    socket = serverSocketChannel.accept();
>                      if (log.isTraceEnabled())
>                          log.trace("Accepted connection: " + socket);
>                  } catch (java.io.InterruptedIOException e) {
> @@ -197,8 +197,8 @@
>              running = false;
>              worker.interrupt();
>          }
> -        serverSocketChannel.close();
>  
> +        serverSocketChannel.close();
>          super.dispose();
>      }
>  
>