Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-10523

Modify s_clang_format to fail gracefully on unsupported arch

    • 2
    • StorEng - Defined Pipeline

      Running the s_all script on an ARM platform produces errors (see below). It looks like s_clang_format downloads an x86 executable of clang-format, which doesn't work on ARM.

      I think there are two ways we could address this:

      1. Provide an ARM version of clang-format and update the script to download the correct version based on the platform it's running on - see WT-10583
      2. Modify the script to fail gracefully (i.e., with a useful error message) when run on ARM - to be done in this ticket.

      The first would be preferable, especially if we expect to do more development on ARM In the future.

      Here's what the failure looks like:

      dist/s_all run started...
      Updating files that include the package version
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      Traceback (most recent call last):
        File "./api_config.py", line 384, in <module>
          format_srcfile(tmp_file)
        File "/home/ubuntu/src/wiredtiger/dist/dist.py", line 72, in format_srcfile
          subprocess.check_call(['./s_clang_format', src])
        File "/opt/mongodbtoolchain/revisions/c6da1cf7f0b4b60d53566305e59857d3d540dcf7/stow/python2-v3.Szn/lib/python2.7/subprocess.py", line 190, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['./s_clang_format', '/home/ubuntu/src/wiredtiger/dist/__tmp']' returned non-zero exit status 1
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      Traceback (most recent call last):
        File "./api_config.py", line 384, in <module>
          format_srcfile(tmp_file)
        File "/home/ubuntu/src/wiredtiger/dist/dist.py", line 72, in format_srcfile
          subprocess.check_call(['./s_clang_format', src])
        File "/opt/mongodbtoolchain/revisions/c6da1cf7f0b4b60d53566305e59857d3d540dcf7/stow/python2-v3.Szn/lib/python2.7/subprocess.py", line 190, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['./s_clang_format', '/home/ubuntu/src/wiredtiger/dist/__tmp']' returned non-zero exit status 1
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      Traceback (most recent call last):
        File "api_err.py", line 169, in <module>
          format_srcfile(tmp_file)
        File "/home/ubuntu/src/wiredtiger/dist/dist.py", line 72, in format_srcfile
          subprocess.check_call(['./s_clang_format', src])
        File "/opt/mongodbtoolchain/revisions/c6da1cf7f0b4b60d53566305e59857d3d540dcf7/stow/python2-v3.Szn/lib/python2.7/subprocess.py", line 190, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['./s_clang_format', '/home/ubuntu/src/wiredtiger/dist/__tmp']' returned non-zero exit status 1
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      Traceback (most recent call last):
        File "log.py", line 340, in <module>
          format_srcfile(tmp_file)
        File "/home/ubuntu/src/wiredtiger/dist/dist.py", line 72, in format_srcfile
          subprocess.check_call(['./s_clang_format', src])
        File "/opt/mongodbtoolchain/revisions/c6da1cf7f0b4b60d53566305e59857d3d540dcf7/stow/python2-v3.Szn/lib/python2.7/subprocess.py", line 190, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['./s_clang_format', '/home/ubuntu/src/wiredtiger/dist/__tmp']' returned non-zero exit status 1
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      Traceback (most recent call last):
        File "stat.py", line 68, in <module>
          format_srcfile(tmp_file)
        File "/home/ubuntu/src/wiredtiger/dist/dist.py", line 72, in format_srcfile
          subprocess.check_call(['./s_clang_format', src])
        File "/opt/mongodbtoolchain/revisions/c6da1cf7f0b4b60d53566305e59857d3d540dcf7/stow/python2-v3.Szn/lib/python2.7/subprocess.py", line 190, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['./s_clang_format', '/home/ubuntu/src/wiredtiger/dist/__tmp']' returned non-zero exit status 1
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      Traceback (most recent call last):
        File "prototypes.py", line 130, in <module>
          prototypes_extern()
        File "prototypes.py", line 102, in prototypes_extern
          output(fns, tests, "../src/include/extern.h")
        File "prototypes.py", line 74, in output
          format_srcfile(tmp_file)
        File "/home/ubuntu/src/wiredtiger/dist/dist.py", line 72, in format_srcfile
          subprocess.check_call(['./s_clang_format', src])
        File "/opt/mongodbtoolchain/revisions/c6da1cf7f0b4b60d53566305e59857d3d540dcf7/stow/python2-v3.Szn/lib/python2.7/subprocess.py", line 190, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['./s_clang_format', '/home/ubuntu/src/wiredtiger/dist/__tmp']' returned non-zero exit status 1
      ./s_clang_format: line 43: /home/ubuntu/src/wiredtiger/dist/clang-format: cannot execute binary file: Exec format error
      

            Assignee:
            etienne.petrel@mongodb.com Etienne Petrel
            Reporter:
            keith.smith@mongodb.com Keith Smith
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: