Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-13393

Improve OOM logging

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • balancer & mover, datanode
    • None

    Description

      It is not uncommon to find "java.lang.OutOfMemoryError: unable to create new native thread" errors in a HDFS cluster. Most often this happens when DataNode creating DataXceiver threads, or when balancer creates threads for moving blocks around.

      In most of cases, the "OOM" is a symptom of number of threads reaching system limit, rather than actually running out of memory, and the current logging of this message is usually misleading (suggesting this is due to insufficient memory)

      How about capturing the OOM, and if it is due to "unable to create new native thread", print some more helpful message like "bump your ulimit" or "take a jstack of the process"?

      Even better, surface this error to make it more visible. It usually takes a while for an in-depth investigation after users notice some job fails, by the time the evidences may already been gone (like jstack output).

      Attachments

        Activity

          People

            Unassigned Unassigned
            weichiu Wei-Chiu Chuang
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: