SwiftLint icon indicating copy to clipboard operation
SwiftLint copied to clipboard

SwiftLint crashes with `Illegal instruction` and `exit code 132` on Ubuntu 20.04

Open potmo opened this issue 2 years ago • 2 comments

New Issue Checklist

Describe the bug

I'm running SwiftLint installed installed with Mint on Ubuntu 20.04 on GitHub Actions. Today Github updated the image (from 20230917.1.0 to 20230924.1.0) that introduced swift 5.9 (see diff: https://github.com/actions/runner-images/commit/5e9e8cd16d1e79f138e110e2fd6f5b447a92df93#diff-fbbd26652e305be8b13c83d79ad91d7105dc03f8ea64a13eeaf95b857118f5aaR32). Before the update everything worked fine and this is the only change.

After that update SwiftLint consistently crashes with 4898 Illegal instruction (core dumped) immediately after start. On my mac running macOS 14.0 Beta (23A5337a) with xcode 15 beta 8 (Version 15.0 beta 8 (15A5229m)) I do not see the issue and it runs fine.

When trying to replicate the environment in a Docker container with similar config (Ubuntu 20.04 with Swift 5.9) I do not see the issue either so this is maybe not a SwiftLint issue but maybe something with GitHub actions but I report it here anyways since someone might know how to fix it.

Complete output when running SwiftLint, including the stack trace and command used
`$ ./mint-cache/mint run swiftlint lint /home/runner/xxx --no-cache --config /home/runner/work/xxx/.swiftlint.yml --reporter json --output /home/runner/work/xxx/swift-lint-result.json 2> /dev/null`

output:

/home/runner/work/_temp/6204b6fb-8c76-4309-8103-19d2695fcb49.sh: line 1:  4898 Illegal instruction     (core dumped) ./mint-cache/mint run swiftlint lint /home/runner/work/xxx --no-cache --config /home/runner/work/xxx/.swiftlint.yml --reporter json --output /home/runner/work/xxx/swift-lint-result.json 2> /dev/null
Error: Process completed with exit code 132.

Environment

Version: SwiftLint 0.53.0 Installation: mint (Mint compiles it from source) OS: Linux Ubuntu 20.04 (github actions image 20230924.1.0)

  • Paste your configuration file:
only_rules: # only these rules will be applied
#    - colon
#    - comma
#    - conditional_returns_on_newline
    - control_statement
    - empty_enum_arguments
    - empty_parameters
    - empty_parentheses_with_trailing_closure
    - legacy_cggeometry_functions
    - legacy_constant
    - legacy_constructor
    - legacy_hashing
    - legacy_nsgeometry_functions
    - class_delegate_protocol
#    - weak_delegate
    - anyobject_protocol
    - closing_brace
#    - closure_parameter_position
#    - closure_spacing
    - explicit_init
    - generic_type_name
    - identical_operands
#    - implicit_getter
    - is_disjoint
    - leading_whitespace
    - literal_expression_end_indentation
    - mark
#    - operator_usage_whitespace
    - operator_whitespace
    - overridden_super_call
    - override_in_extension
    - prohibited_super_call
    - protocol_property_accessors_order
    - redundant_discardable_let
    - redundant_nil_coalescing
    - redundant_objc_attribute
#    - redundant_optional_initialization
    - redundant_void_return
    - return_arrow_whitespace
    - shorthand_operator
#    - statement_position
#    - switch_case_alignment
    - syntactic_sugar
#    - trailing_comma
    - trailing_semicolon
    - unneeded_break_in_switch
    - unused_enumerated
    - unused_optional_binding
    - valid_ibinspectable
#    - vertical_whitespace
    - void_return
    - yoda_condition
    - array_init
    - compiler_protocol_init
#    - contains_over_first_not_nil
    - discouraged_direct_init
    - discouraged_object_literal
    - dynamic_inline
    - force_try
    - implicitly_unwrapped_optional
    - force_unwrapping
#    - legacy_random
#    - custom_rules

excluded: 
    - XXX/XXX
    - YYY/YYY/YYY
    - ZZZ
    - AAA/AAA.swift

reporter: "xcode" # reporter type (xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown)

force_try: warning

  • Are you using nested configurations? If so, paste their relative paths and respective contents. NO

  • Which Xcode version are you using (check xcodebuild -version)? no xcode on the machine since it is Linux

  • Do you have a sample that shows the issue? ./mint-cache/mint run swiftlint lint /home/runner/xxx --no-cache --config /home/runner/work/xxx/.swiftlint.yml --reporter json --output /home/runner/work/xxx/swift-lint-result.json 2> /dev/null

Outputs: /home/runner/work/_temp/6204b6fb-8c76-4309-8103-19d2695fcb49.sh: line 1: 4898 Illegal instruction (core dumped) The temp file name might be to GitHub Actions that is running the action in a temp file. The number before "Illegal Instruction" is changing every run.

potmo avatar Sep 28 '23 14:09 potmo