dense-analysis / ale

Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support
BSD 2-Clause "Simplified" License
13.51k stars 1.43k forks source link

error loading shared lib: libicui18n.so.73 #4760

Closed schrotie closed 5 months ago

schrotie commented 5 months ago

Information

VIM version

NVIM v0.9.5 Build type: Release

Operating System:

Up to date Manjaro

What went wrong

Something in the stack is erroring when trying to load libicui18n.so.73, so linting does not work at all right now. The lib may have something to do with Qt.

I guess I need to rebuild something, but can't tell if it's ALE (nothing to build there, is it?), Nvim (I'm using the terminal version, no Qt, and them term is a Gnome terminal ...) or something else. The linter is eslint which is also new (major update to 9.0, I'm migrating a project ...). But I get the same problem with an old version.

eslint works from the commandline.

Since the error comes from node: I'm using nvm, so I thought running a separate shell as ALE does might use another version and cause that error. However, running

/bin/sh -c cd /home/schrotie/Nextcloud/dev/private/inventory && /home/schrotie/Nextcloud/dev/private/inventory/node_modules/eslint/bin/eslint.js -f json --stdin --stdin-filename /home/schrotie/Nextcloud/dev/private/inventory/eslint.config.mjs < /home/schrotie/Nextcloud/dev/private/inventory/eslint.config.mjs

also works without error ...

Reproducing the bug

  1. Opening a file, editing, saving
  2. I get no ALE errors

ALEInfo indicates a problem with a shared lib.

:ALEInfo

Expand Current Filetype: javascript Available Linters: ['biome', 'cspell', 'deno', 'eslint', 'fecs', 'flow', 'flow_ls', 'jscs', 'jshint', 'standard', 'tsserver', 'xo'] Enabled Linters: ['eslint'] Ignored Linters: [] Suggested Fixers: 'biome' - Fix JavaScript and TypeScript using biome. 'clang-format' - Fix C, C++, C#, CUDA, Java, JavaScript, JSON, ObjectiveC and Protobuf files with clang-format. 'dprint' - Pluggable and configurable code formatting platform 'eslint' - Apply eslint --fix to a file. 'fecs' - Apply fecs format to a file. 'importjs' - automatic imports for javascript 'prettier' - Apply prettier to a file. 'prettier_eslint', 'prettier-eslint' - Apply prettier-eslint to a file. 'prettier_standard', 'prettier-standard' - Apply prettier-standard to a file. 'remove_trailing_lines' - Remove all blank lines at the end of a file. 'standard' - Fix JavaScript files using standard --fix 'trim_whitespace' - Remove all trailing whitespace characters at the end of every line. 'xo' - Fix JavaScript/TypeScript files using xo --fix. Linter Variables: " Press Space to read :help for a setting let g:ale_javascript_eslint_executable = 'eslint' let g:ale_javascript_eslint_options = '' let g:ale_javascript_eslint_suppress_eslintignore = 0 let g:ale_javascript_eslint_suppress_missing_config = 0 let g:ale_javascript_eslint_use_global = 0 Global Variables: " Press Space to read :help for a setting let g:ale_cache_executable_check_failures = v:null let g:ale_change_sign_column_color = v:null let g:ale_command_wrapper = '' let g:ale_completion_delay = v:null let g:ale_completion_enabled = 0 let g:ale_completion_max_suggestions = v:null let g:ale_disable_lsp = 'auto' let g:ale_echo_cursor = 1 let g:ale_echo_msg_error_str = 'Error' let g:ale_echo_msg_format = '%code: %%s' let g:ale_echo_msg_info_str = 'Info' let g:ale_echo_msg_warning_str = 'Warning' let g:ale_enabled = 1 let g:ale_fix_on_save = 0 let g:ale_fixers = {} let g:ale_history_enabled = 1 let g:ale_info_default_mode = 'preview' let g:ale_history_log_output = 1 let g:ale_keep_list_window_open = 0 let g:ale_lint_delay = 200 let g:ale_lint_on_enter = 1 let g:ale_lint_on_filetype_changed = 1 let g:ale_lint_on_insert_leave = 1 let g:ale_lint_on_save = 1 let g:ale_lint_on_text_changed = 'insert' let g:ale_linter_aliases = {} let g:ale_linters = {'php': ['phpcs'], 'javascript': ['eslint']} let g:ale_linters_explicit = 0 let g:ale_linters_ignore = {} let g:ale_list_vertical = 0 let g:ale_list_window_size = 10 let g:ale_loclist_msg_format = '%code: %%s' let g:ale_max_buffer_history_size = 20 let g:ale_max_signs = v:null let g:ale_maximum_file_size = v:null let g:ale_open_list = 0 let g:ale_pattern_options = v:null let g:ale_pattern_options_enabled = v:null let g:ale_root = {} let g:ale_set_balloons = 0 let g:ale_set_highlights = 1 let g:ale_set_loclist = 1 let g:ale_set_quickfix = 0 let g:ale_set_signs = 1 let g:ale_sign_column_always = v:null let g:ale_sign_error = '🗙' let g:ale_sign_info = v:null let g:ale_sign_offset = v:null let g:ale_sign_style_error = v:null let g:ale_sign_style_warning = v:null let g:ale_sign_warning = '🗲' let g:ale_sign_highlight_linenrs = v:null let g:ale_type_map = {} let g:ale_use_neovim_diagnostics_api = 1 let g:ale_use_global_executables = v:null let g:ale_virtualtext_cursor = 'all' let g:ale_warn_about_trailing_blank_lines = 1 let g:ale_warn_about_trailing_whitespace = 1 Command History: (executable check - success) /home/schrotie/Nextcloud/dev/private/inventory/node_modules/eslint/bin/eslint.js (finished - exit code 127) ['/bin/sh', '-c', 'cd ''/home/schrotie/Nextcloud/dev/private/inventory'' && ''/home/schrotie/Nextcloud/dev/private/inventory/node_modules/eslint/bin/eslint.js'' -f json --stdin --stdin-filename ''/home/schrotie/Nextcloud/dev/private/inventory/src/app.mjs'' < ''/tmp/nvim.schrotie/1EPxB9/5/app.mjs'''] <<>> node: error while loading shared libraries: libicui18n.so.73: cannot open shared object file: No such file or directory <<>>
schrotie commented 5 months ago

Okay, I worked around the issue by installing AUR-package icu73-bin. Now ALE works as expected. I'm still curious why the error occurs in these specific circumstances. ALE must use some unicode APIs that are otherwise not used. If you happen to know, I'd be happy to read your comment, but don't bother figuring this out if you don't.