Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ansible-lint . fails with OSError: [Errno 63] File name too long because of following symlinks #4523

Open
Xenion1987 opened this issue Feb 13, 2025 · 0 comments
Labels
bug new Triage required

Comments

@Xenion1987
Copy link

Xenion1987 commented Feb 13, 2025

Summary

When I try to execute ansible-lint ., if 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'
@Xenion1987 Xenion1987 added bug new Triage required labels Feb 13, 2025
@Xenion1987 Xenion1987 changed the title asnible-lint . fails with OSError: [Errno 63] File name too long because of following symlinks ansible-lint . fails with OSError: [Errno 63] File name too long because of following symlinks Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug new Triage required
Projects
Status: No status
Development

No branches or pull requests

1 participant