Subscribe: RSS
  • We are seeing a RED_ENFILE (file table overflow/red_errno = 23) error during operation. What does this mean?
    • Reliance Edge has a fixed number of preallocated inodes. (Much like many Unix-like file systems, such as ext2/3/4.) One inode is allocated for the root directory during format, and afterward each file or directory which is created will allocate an inode. The RED_ENFILE errno is returned when creating a new file or directory is not possible, because all the inodes have been allocated.

      You will want to look at how many files and directories you have created on the Reliance Edge file system? And, also check on how many inodes you configured the file system to have in redconf.c?
      • More information about iNode count can be found in Chapter 12 ("Product Configuration) of the Reliance Edge Developer's Guide; Here is the section on the Inode Count:

        12.3.8.7 Inode Count

        Where to find it: In the configuration utility, this setting is found under the Volumes tab in the spinbox labeled "Inode
        count"; it is configured separately for each volume. The corresponding values in redconf.c are the fifth member of every
        gaRedVolConf element (.ulInodeCount).

        What it means: Every time a file or directory is created, one inode is consumed; when a file or directory is deleted,
        the inode is freed and available for reuse. Also, when using the POSIX-like API, one inode is consumed by the root
        directory. So the inode count dictates the maximum number of files and directories that can reside on the volume.

        Guidance: The number of inodes will depend on how many files and directories will be created on the file system either
        by your application or during image creation by the Image Builder. Some applications have very fixed use cases (for
        example, using exactly twelve files with well-defined purposes) which makes it easy to determine this value; use cases
        where the File System Essentials API is appropriate generally fall into this category. If you have a root file system, you
        can set the inode count to the number of files and directories in that root file system (including the root directory) plus
        the number of files and directories created at run-time. You can configure Reliance Edge with more inodes than are
        actually needed; the only downside is that each inode consumes two blocks of space which cannot be used for anything
        else.