8000 `ansible-lint .` fails with `OSError: [Errno 63] File name too long` because of following symlinks · Issue #4523 · ansible/ansible-lint · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
ansible-lint . fails with OSError: [Errno 63] File name too long because of following symlinks #4523
Closed
@Xenion1987

Description

@Xenion1987
Summary

When I try to execute ansible-lint ., it fails.

Issue Type
  • Bug Report
OS / ENVIRONMENT
system_profiler SPSoftwareDataType SPHardwareDataType
Software:

    System Software Overview:

      System Version: macOS 15.3 (24D60)
      Kernel Version: Darwin 24.3.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Computer Name: xxx
      User Name: xxx
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 3 Tage, 2 Stunden und 29 Minuten

Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro18,3
      Model Number: MKGP3D/A
      Chip: Apple M1 Pro
      Total Number of Cores: 8 (6 performance and 2 efficiency)
      Memory: 16 GB
      System Firmware Version: 11881.81.2
      OS Loader Version: 11881.81.2
      Serial Number (system): xxx
      Hardware UUID: xxx
      Provisioning UDID: xxx
      Activation Lock Status: Disabled
########################python --version
Python 3.13.2
########################ansible --version
ansible [core 2.18.2]
  config file = None
  configured module search path = ['/Users/marvinmoldenhauer/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansible
  ansible collection location = /Users/marvinmoldenhauer/.ansible/collections:/usr/share/ansible/collections
  executable location = /Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/bin/ansible
  python version = 3.13.2 (main, Feb  4 2025, 14:51:09) [Clang 16.0.0 (clang-1600.0.26.6)] (/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/bin/python3.13)
  jinja version = 3.1.5
  libyaml = True
########################ansible-lint --version
ansible-lint 25.1.2 using ansible-core:2.18.2 ansible-compat:25.1.2 ruamel-yaml:0.18.10 ruamel-yaml-clib:None
  • ansible installation method: pip
  • ansible-lint installation method: pip
STEPS TO REPRODUCE
git clone https://github.com/Xenion1987/ansible-role-user-management.git
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
ansible-lint .
Desired Behavior

ansible-lint output stuff

Possible security bugs should be reported via email to security@ansible.com

Actual Behavior

ansible-lint creates a directory .ansible/roles/Xenion1987.user_management as a symlink to the local cloned repository:

❯ tree .ansible
.ansible
├── collections
├── modules
└── roles
    └── Xenion1987.user_management -> /Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management

Image

ansible-lint .
Traceback (most recent call last):
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/bin/ansible-lint", line 8, in <module>
    sys.exit(_run_cli_entrypoint())
             ~~~~~~~~~~~~~~~~~~~^^
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/__main__.py", line 416, in _run_cli_entrypoint
    sys.exit(main(sys.argv))
             ~~~~^^^^^^^^^^
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/__main__.py", line 368, in main
    result = get_matches(rules, options)
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/runner.py", line 679, in get_matches
    runner = Runner(
        *lintables,
    ...<7 lines>...
        _skip_ansible_syntax_check=options._skip_ansible_syntax_check,  # noqa: SLF001
    )
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/runner.py", line 104, in __init__
    expand_dirs_in_lintables(self.lintables)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/file_utils.py", line 549, in expand_dirs_in_lintables
    all_files = discover_lintables(options)
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/file_utils.py", line 475, in discover_lintables
    for filename in get_all_files(
                    ~~~~~~~~~~~~~^
        *[Path(s) for s in options.lintables],
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        exclude_paths=options.exclude_paths,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/file_utils.py", line 620, in get_all_files
    all_files.extend(get_all_files(item, exclude_paths=exclude_paths))
                     ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/file_utils.py", line 620, in get_all_files
    all_files.extend(get_all_files(item, exclude_paths=exclude_paths))
                     ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/file_utils.py", line 620, in get_all_files
    all_files.extend(get_all_files(item, exclude_paths=exclude_paths))
                     ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  [Previous line repeated 67 more times]
  File "/Users/marvinmoldenhauer/syncThing/Arbeit/workspace/ansible-role-user-management/venv/lib/python3.13/site-packages/ansiblelint/file_utils.py", line 601, in get_all_files
    if gitignore.exists():
       ~~~~~~~~~~~~~~~~^^
  File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/pathlib/_abc.py", line 450, in exists
    self.stat(follow_symlinks=follow_symlinks)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.13/3.13.2/Frameworks/Python.framework/Versions/3.13/lib/python3.13/pathlib/_local.py", line 515, in stat
    return os.stat(self, follow_symlinks=follow_symlinks)
           ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 63] File name too long: '.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/roles/Xenion1987.user_management/.ansible/.gitignore'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0