uutils/coreutils · error · uucore::error::Error

Reading cyclic directory

Error message

Reading cyclic directory

What it means

Error "Reading cyclic directory" thrown in uutils/coreutils.

Source

Thrown at src/uu/chcon/src/chcon.rs:593

                // this file, tell fts_read to stat it "again".
                if entry.level() == 0 && entry.number() == 0 {
                    entry.set_number(1);
                    let _ignored = fts.set(fts_sys::FTS_AGAIN);
                    return Ok(());
                }

                result = fts_err(translate!("chcon-op-accessing"));
            }

            fts_sys::FTS_ERR => result = fts_err(translate!("chcon-op-accessing")),

            fts_sys::FTS_DNR => result = fts_err(translate!("chcon-op-reading-directory")),

            fts_sys::FTS_DC
                if cycle_warning_required(options.recursive_mode.fts_open_options(), &entry) =>
            {
                emit_cycle_warning(&file_full_name);
                return Err(err(
                    translate!("chcon-op-reading-cyclic-directory"),
                    io::ErrorKind::InvalidData,
                ));
            }

            _ => {}
        }

        if entry.flags() == fts_sys::FTS_DP
            && result.is_ok()
            && root_dev_ino_check(root_dev_ino, file_dev_ino)
        {
            root_dev_ino_warn(&file_full_name);
            result = Err(err(
                translate!("chcon-op-modifying-root-path"),
                io::ErrorKind::PermissionDenied,
            ));
        }

View on GitHub (pinned to 0b77ced485)

Solutions

  1. Remove the directory cycle (symlink loop or bind mount loop) before recursing.
  2. Use options that do not follow symbolic links, e.g. chcon without -L/-H dereferencing.

When it happens

Trigger: Occurs when chcon recursion detects a directory cycle, e.g. via bind mounts or symlinks.

Common situations: Recursing with -R through directory structures containing loops.


AI-assisted analysis of uutils/coreutils@0b77ced485 (2026-08-19). Data as JSON: /api/errors/442d36e677262c4b. Report an issue: GitHub.