You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ja...@apache.org on 2022/03/05 20:29:42 UTC

svn commit: r1898633 - /subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java

Author: jamessan
Date: Sat Mar  5 20:29:42 2022
New Revision: 1898633

URL: http://svn.apache.org/viewvc?rev=1898633&view=rev
Log:
Fix sporadic testCrash_RequestChannel_nativeRead_AfterException failure

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
  (testCrash_RequestChannel_nativeRead_AfterException): Ignore IOException to
    avoid a false positive test failure if WAIT_TUNNEL tries to read after the
    pipe is already closed.

Patch by: Alexandr Miloslavskiy <alexandr.miloslavskiy {_AT_} syntevo.com>

Modified:
    subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java

Modified: subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1898633&r1=1898632&r2=1898633&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Sat Mar  5 20:29:42 2022
@@ -4676,7 +4676,20 @@ public class BasicTests extends SVNTests
             // 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.
+        try
+        {
+            tunnelAgent.join();
+        }
+        catch (InterruptedException e)
+        {
+            e.printStackTrace();
+        }
     }
 
     /**