On Wed, Nov 24, 2021 at 02:13:20AM +0300, Alexandr Miloslavskiy wrote:
> Indeed there was a race condition where TunnelAgent could begin writing at
> the same time when pipe is being closed. This resulted in an unexpected
> IOException, which was detected by the test.

> Please find the patch attached.

> Index: 
> subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
> ===================================================================
> --- 
> subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java 
>     (revision 1895276)
> +++ 
> subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java 
>     (working copy)
> @@ -4676,7 +4676,19 @@
>              // RuntimeException("Test exception") is expected here
>          }
>  
> -        tunnelAgent.joinAndTest();
> +        // In this test, there is a race condition that sometimes results in
> +        // IOException when 'WAIT_TUNNEL' tries to read from a pipe that
> +        // already has its read end closed. This is not an error, but
> +        // it's hard to distinguish this case from other IOException which
> +        // indicate a problem. To reproduce, simply wrap this test's body in
> +        // a loop. The workaround is to ignore any detected IOException.
> +        //
> +        // tunnelAgent.joinAndTest();
> +        try {
> +            tunnelAgent.join();
> +        } catch (InterruptedException e) {

The comment says IOException, but this is InterruptedException.  Is that
intentional?

> +            e.printStackTrace ();
> +        }
>      }
>  
>      /**


-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB

Reply via email to