Lin Yiqun created HDFS-10185:
--------------------------------

             Summary: TestHFlushInterrupted verifies interrupt state incorrectly
                 Key: HDFS-10185
                 URL: https://issues.apache.org/jira/browse/HDFS-10185
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: test
            Reporter: Lin Yiqun
            Assignee: Lin Yiqun


In unit test {{TestHFlush#testHFlushInterrupted}}, there were some places 
verifying interrupt state incorrectly. As follow:
{code}
      Thread.currentThread().interrupt();
      try {
        stm.hflush();
        // If we made it past the hflush(), then that means that the ack made 
it back
       // from the pipeline before we got to the wait() call. In that case we 
should
        // still have interrupted status.
        assertTrue(Thread.interrupted());
      } catch (InterruptedIOException ie) {
        System.out.println("Got expected exception during flush");
      }
{code}
When stm do the {{hflush}} operation, it will throw interrupted exception and 
the {{assertTrue(Thread.interrupted())}} will not be execute. And if you put 
this before the {{hflush}}, this method will clear interrupted state and the 
expected exception will not be throw. The similar problem also appears after in 
stm.close.
So we should use a way to get state without clearing interrupted state like 
{{Thread.currentThread().isInterrupted()}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to