Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-8264

ROOT 6 master: Too many open files

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.08/00, 6.10/00
    • Component/s: None
    • Labels:
      None
    • Environment:

      Gentoo Linux x86_64

      Description

      Dear ROOTers,

      probably related to the LLVM upgrade or my switching to gcc 5.4.0, ROOT master does not run anymore for me since it tries to open (and never closes) too many headers:

      $ root -l         
      fatal error: cannot open file '/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/g++-v5/unordered_set': Too many open files
      MetaProcessor::copyFileDescriptor: Duplicating the file descriptor 2resulted in an error. Will not be able to unredirect.input_line_3:1:10: fatal error: 'Rtypes.h' file not found
      #include "Rtypes.h"
               ^
      input_line_4:1:10: fatal error: 'cling/Interpreter/DynamicLookupRuntimeUniverse.h' file not found
      #include "cling/Interpreter/DynamicLookupRuntimeUniverse.h"
               ^
       
       *** Break *** segmentation violation

      Indeed, an strace shows:

      $ strace -f root -l
      ...
      open("/usr/include/root/TGTable.h", O_RDONLY) = 1019
      fstat(1019, {st_mode=S_IFREG|0644, st_size=9784, ...}) = 0
      open("/usr/include/root/TGSpeedo.h", O_RDONLY) = 1020
      fstat(1020, {st_mode=S_IFREG|0644, st_size=6013, ...}) = 0
      open("/usr/include/root/TGTextEditor.h", O_RDONLY) = 1021
      fstat(1021, {st_mode=S_IFREG|0644, st_size=4308, ...}) = 0
      open("/usr/include/root/TGPasswdDialog.h", O_RDONLY) = 1022
      fstat(1022, {st_mode=S_IFREG|0644, st_size=3468, ...}) = 0
      open("/usr/include/root/TGRedirectOutputGuard.h", O_RDONLY) = 1023
      fstat(1023, {st_mode=S_IFREG|0644, st_size=3156, ...}) = 0
      open("/usr/include/root/TGuiBuilder.h", O_RDONLY) = -1 EMFILE (Too many open files)
      ...

      and finally of course we end in failure.

      Raising ulimit helps with the interpreter, but fails as soon as I start a TApplication, in this case e.g. our analysis framework:

      $ explora
      Fatal in <TFdSet::Set>: fd (1708) out of range [0..1023]
      aborting

      That seems to be since TFdSet hardcodes the 1024 default (and does not know about any ulimit).

      Is this a known issue? Is something broken in my configuration which I can provide more information on?

      Cheers,
      Oliver

        Attachments

          Activity

            People

            Assignee:
            axel Axel Naumann
            Reporter:
            ofreyerm Oliver Freyermuth
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: