Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-95716

Prettier formatter breaks when broken symlinks are present in external directory

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Build
    • Fully Compatible
    • ALL

      Prettier breaks when trying to resolve any broken symlink in the directory it's formatting

      Ex:

      $ bazel run //:format
      INFO: Invocation ID: c783ff80-f59a-40a2-8697-471819826848
      INFO: Streaming build results to: https://sodalite.cluster.engflow.com/invocation/c783ff80-f59a-40a2-8697-471819826848
      INFO: Analyzed target //:format (0 packages loaded, 0 targets configured).
      INFO: Found 1 target...
      Target //bazel/format:format up-to-date:
        bazel-bin/bazel/format/format
      INFO: Elapsed time: 0.456s, Critical Path: 0.01s
      INFO: 1 process: 1 internal.
      INFO: Running command line: bazel-bin/bazel/format/format --prettier bazel/format/prettier.sh
      INFO: Streaming build results to: https://sodalite.cluster.engflow.com/invocation/c783ff80-f59a-40a2-8697-471819826848
      INFO: Build completed successfully, 1 total action
      Running command: '[PosixPath('/home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/execroot/__main__/bazel-out/aarch64-fastbuild/bin/bazel/format/prettier.sh'), '.', '!./build', '!./bazel-bin', '!./bazel-out', '!./bazel-mongo', '!./external', '--write']'
      /home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:799
                      throw err;
                      ^
      
      Error: ENOENT: no such file or directory, readlink '/home/ubuntu/mongo-dev/work/misc1/external'
          at enoent (/home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:818:15)
          at /home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:230:39
          at readNextHop (/home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:489:24)
          at readHopLink (/home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:549:20)
          at nextHop (/home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:487:9)
          at args.<computed> (/home/ubuntu/.cache/bazel/_bazel_ubuntu/4f26ed2ae69e3e7a342f434e1dca9056/external/aspect_rules_js/js/private/node-patches/fs.js:226:24)
          at FSReqCallback.oncomplete (node:fs:192:23) {
        errno: -2,
        syscall: 'readlink',
        code: 'ENOENT',
        path: '/home/ubuntu/mongo-dev/work/misc1/external'
      }
      Found formatting errors. Run 'bazel run //:format' to fix
      *** IF BAZEL IS NOT INSTALLED, RUN THE FOLLOWING: ***
      
      python buildscripts/install_bazel.py 

      There was a previous attempt to address this in https://jira.mongodb.org/browse/SERVER-94844 but it doesn't look to have completely resolved the issue

      See https://github.com/prettier/prettier/issues/11568 for the root cause

            Assignee:
            zack.winter@mongodb.com Zack Winter
            Reporter:
            zack.winter@mongodb.com Zack Winter
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: