Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-6814 [WINDOWS] HBase on Windows
  3. HBASE-8703

[WINDOWS] Timed-out processes exit with non-zero code causing HealthChecker to report incorrectly

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.98.0, 0.95.2
    • None
    • None
    • Reviewed

    Description

      Hadoop ShellCommandExecutor on timeout, destroys the process, and later checks the exit code. On windows, if process is destroyed, the exit code is non-zero, so ShellCommandExecutor.execute() throws ExitCodeException rather than generic IOException. However, in HealthChecker, on catching ExitCodeException we do not check the timeout.

      It is unfortunate that Hadoop does not throw an TimeoutException, but provides .isTimedOut() api. And it seems that on timeout on linux, the throwing of the IOException is coincidental:

      2013-06-06 14:17:47,930 WARN  [main] hbase.HealthChecker(79): Caught exception : java.io.IOException: Stream closed
      

      It may not be worth fixing Hadoop for this, but we have to do the correct check anyway.

      Attachments

        1. hbase-8703_v1-addendum.patch
          3 kB
          Enis Soztutar
        2. hbase-8703_v1.patch
          5 kB
          Enis Soztutar
        3. hbase-8703-0.94.patch
          4 kB
          Enis Soztutar

        Activity

          People

            enis Enis Soztutar
            enis Enis Soztutar
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: