nvbn / thefuck

Magnificent app which corrects your previous console command.
MIT License
83.75k stars 3.41k forks source link

App just hangs when invoking #1372

Open cquick01 opened 1 year ago

cquick01 commented 1 year ago

thefuck just hangs and does nothing when trying to use.

The output of thefuck --version (something like The Fuck 3.1 using Python 3.5.0 and Bash 4.4.12(1)-release):

➜  ~ fuck -v
The Fuck 3.32 using Python 3.11.2 and ZSH 5.8.1

Your system (Debian 7, ArchLinux, Windows, etc.):

Ubuntu 22.04 (WSL2)

How to reproduce the bug:

➜   ~ gerp -R "test"
zsh: command not found: gerp
➜   ~ fuck
...

The output of The Fuck with THEFUCK_DEBUG=true exported (typically execute export THEFUCK_DEBUG=true in your shell before The Fuck):

➜   ~ gerp -R "test"
zsh: command not found: gerp
➜   ~ fuck -d
DEBUG: Run with settings: {'alter_history': True,
 'debug': True,
 'env': {'GIT_TRACE': '1', 'LANG': 'C', 'LC_ALL': 'C'},
 'exclude_rules': [],
 'excluded_search_path_prefixes': [],
 'history_limit': None,
 'instant_mode': True,
 'no_colors': False,
 'num_close_matches': 3,
 'priority': {},
 'repeat': False,
 'require_confirmation': True,
 'rules': [<const: All rules enabled>],
 'slow_commands': ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'],
 'user_dir': PosixPath('/home/cquick/.config/thefuck'),
 'wait_command': 3,
 'wait_slow_command': 15}
^CDEBUG: Total took: 0:00:40.806389      <----- ^C after ~40 seconds
Traceback (most recent call last):
  File "/home/cquick/.local/bin/thefuck", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/entrypoints/main.py", line 31, in main
    fix_command(known_args)
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/entrypoints/fix_command.py", line 34, in fix_command
    raw_command = _get_raw_command(known_args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/entrypoints/fix_command.py", line 21, in _get_raw_command
    executables = get_all_executables()
                  ^^^^^^^^^^^^^^^^^^^^^
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/utils.py", line 34, in wrapper
    memo[key] = fn(*args, **kwargs)
                ^^^^^^^^^^^^^^^^^^^
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/utils.py", line 124, in get_all_executables
    bins = [exe.name.decode('utf8') if six.PY2 else exe.name
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/utils.py", line 128, in <listcomp>
    if not _safe(exe.is_dir, True)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/cquick/.local/lib/python3.11/site-packages/thefuck/utils.py", line 117, in _safe
    return fn()
           ^^^^
  File "/home/cquick/.pyenv/versions/3.11.2/lib/python3.11/pathlib.py", line 1250, in is_dir
    return S_ISDIR(self.stat().st_mode)
                   ^^^^^^^^^^^
  File "/home/cquick/.pyenv/versions/3.11.2/lib/python3.11/pathlib.py", line 1013, in stat
    return os.stat(self, follow_symlinks=follow_symlinks)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

If the bug only appears with a specific application, the output of that application and its version:

Anything else you think is relevant:


Edit: Have also tried using 3.29 from the Ubuntu APT repositories. Same issue. Tried using the system Python installation (3.10.2) rather than 3.11 from pyenv. Same issue.

saccohuo commented 1 year ago

Same error occured.

brucecantarim commented 1 year ago

Similar issue here, similar env. Mine hangs for a while, and fails with a warning after a whole a minute.

Same result with the --enable-experimental-instant-mode on or off.

> thefuck -v
The Fuck 3.32 using Python 3.10.6 and ZSH 5.8.1
> fuck -d
DEBUG: Run with settings: {'alter_history': True,
 'debug': True,
 'env': {'GIT_TRACE': '1', 'LANG': 'C', 'LC_ALL': 'C'},
 'exclude_rules': [],
 'excluded_search_path_prefixes': [],
 'history_limit': None,
 'instant_mode': True,
 'no_colors': False,
 'num_close_matches': 3,
 'priority': {},
 'repeat': False,
 'require_confirmation': True,
 'rules': [<const: All rules enabled>],
 'slow_commands': ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'],
 'user_dir': PosixPath('/home/bruce/.config/thefuck'),
 'wait_command': 3,
 'wait_slow_command': 15}
DEBUG: Read output from log took: 0:00:00.036448
[WARN] Script not found in output log
DEBUG: Importing rule: adb_unknown_command; took: 0:00:00.000128
DEBUG: Importing rule: ag_literal; took: 0:00:00.000245
DEBUG: Importing rule: apt_get; took: 0:00:00.014155
DEBUG: Importing rule: apt_get_search; took: 0:00:00.000783
DEBUG: Importing rule: apt_invalid_operation; took: 0:00:00.000520
DEBUG: Importing rule: apt_list_upgradable; took: 0:00:00.000205
DEBUG: Importing rule: apt_upgrade; took: 0:00:00.000187
DEBUG: Importing rule: aws_cli; took: 0:00:00.000133
DEBUG: Importing rule: az_cli; took: 0:00:00.000143
DEBUG: Importing rule: brew_cask_dependency; took: 0:00:00.000266
DEBUG: Importing rule: brew_install; took: 0:00:00.000064
DEBUG: Importing rule: brew_link; took: 0:00:00.000132
DEBUG: Importing rule: brew_reinstall; took: 0:00:00.000273
DEBUG: Importing rule: brew_uninstall; took: 0:00:00.000129
DEBUG: Importing rule: brew_unknown_command; took: 0:00:00.000064
DEBUG: Importing rule: brew_update_formula; took: 0:00:00.000150
DEBUG: Importing rule: cargo; took: 0:00:00.000048
DEBUG: Importing rule: cargo_no_command; took: 0:00:00.000126
DEBUG: Importing rule: cat_dir; took: 0:00:00.000123
DEBUG: Importing rule: cd_correction; took: 0:00:00.000630
DEBUG: Importing rule: cd_cs; took: 0:00:00.000058
DEBUG: Importing rule: cd_mkdir; took: 0:00:00.000197
DEBUG: Importing rule: cd_parent; took: 0:00:00.000057
DEBUG: Importing rule: chmod_x; took: 0:00:00.000048
DEBUG: Importing rule: choco_install; took: 0:00:00.273553
DEBUG: Importing rule: composer_not_command; took: 0:00:00.000348
DEBUG: Importing rule: conda_mistype; took: 0:00:00.000223
DEBUG: Importing rule: cp_create_destination; took: 0:00:00.000170
DEBUG: Importing rule: cp_omitting_directory; took: 0:00:00.000216
DEBUG: Importing rule: cpp11; took: 0:00:00.000145
DEBUG: Importing rule: dirty_untar; took: 0:00:00.000756
DEBUG: Importing rule: dirty_unzip; took: 0:00:00.001083
DEBUG: Importing rule: django_south_ghost; took: 0:00:00.000073
DEBUG: Importing rule: django_south_merge; took: 0:00:00.000054
DEBUG: Importing rule: dnf_no_such_command; took: 0:00:00.139861
DEBUG: Importing rule: docker_image_being_used_by_container; took: 0:00:00.000257
DEBUG: Importing rule: docker_login; took: 0:00:00.000162
DEBUG: Importing rule: docker_not_command; took: 0:00:00.133771
DEBUG: Importing rule: dry; took: 0:00:00.000149
DEBUG: Importing rule: fab_command_not_found; took: 0:00:00.000266
DEBUG: Importing rule: fix_alt_space; took: 0:00:00.000178
DEBUG: Importing rule: fix_file; took: 0:00:00.001055
DEBUG: Importing rule: gem_unknown_command; took: 0:00:00.138333
DEBUG: Importing rule: git_add; took: 0:00:00.000485
DEBUG: Importing rule: git_add_force; took: 0:00:00.000161
DEBUG: Importing rule: git_bisect_usage; took: 0:00:00.000158
DEBUG: Importing rule: git_branch_0flag; took: 0:00:00.000135
DEBUG: Importing rule: git_branch_delete; took: 0:00:00.000116
DEBUG: Importing rule: git_branch_delete_checked_out; took: 0:00:00.000114
DEBUG: Importing rule: git_branch_exists; took: 0:00:00.000140
DEBUG: Importing rule: git_branch_list; took: 0:00:00.000210
DEBUG: Importing rule: git_checkout; took: 0:00:00.000143
DEBUG: Importing rule: git_clone_git_clone; took: 0:00:00.000112
DEBUG: Importing rule: git_commit_add; took: 0:00:00.000137
DEBUG: Importing rule: git_commit_amend; took: 0:00:00.000106
DEBUG: Importing rule: git_commit_reset; took: 0:00:00.000106
DEBUG: Importing rule: git_diff_no_index; took: 0:00:00.000216
DEBUG: Importing rule: git_diff_staged; took: 0:00:00.000137
DEBUG: Importing rule: git_fix_stash; took: 0:00:00.000146
DEBUG: Importing rule: git_flag_after_filename; took: 0:00:00.000130
DEBUG: Importing rule: git_help_aliased; took: 0:00:00.000120
DEBUG: Importing rule: git_hook_bypass; took: 0:00:00.000149
DEBUG: Importing rule: git_lfs_mistype; took: 0:00:00.000173
DEBUG: Importing rule: git_main_master; took: 0:00:00.000144
DEBUG: Importing rule: git_merge; took: 0:00:00.000133
DEBUG: Importing rule: git_merge_unrelated; took: 0:00:00.000116
DEBUG: Importing rule: git_not_command; took: 0:00:00.000115
DEBUG: Importing rule: git_pull; took: 0:00:00.000111
DEBUG: Importing rule: git_pull_clone; took: 0:00:00.000108
DEBUG: Importing rule: git_pull_uncommitted_changes; took: 0:00:00.000106
DEBUG: Importing rule: git_push; took: 0:00:00.000124
DEBUG: Importing rule: git_push_different_branch_names; took: 0:00:00.000113
DEBUG: Importing rule: git_push_force; took: 0:00:00.000109
DEBUG: Importing rule: git_push_pull; took: 0:00:00.000155
DEBUG: Importing rule: git_push_without_commits; took: 0:00:00.000111
DEBUG: Importing rule: git_rebase_merge_dir; took: 0:00:00.000115
DEBUG: Importing rule: git_rebase_no_changes; took: 0:00:00.000080
DEBUG: Importing rule: git_remote_delete; took: 0:00:00.000110
DEBUG: Importing rule: git_remote_seturl_add; took: 0:00:00.000086
DEBUG: Importing rule: git_rm_local_modifications; took: 0:00:00.000116
DEBUG: Importing rule: git_rm_recursive; took: 0:00:00.000108
DEBUG: Importing rule: git_rm_staged; took: 0:00:00.000106
DEBUG: Importing rule: git_stash; took: 0:00:00.000110
DEBUG: Importing rule: git_stash_pop; took: 0:00:00.000109
DEBUG: Importing rule: git_tag_force; took: 0:00:00.000106
DEBUG: Importing rule: git_two_dashes; took: 0:00:00.000149
DEBUG: Importing rule: go_run; took: 0:00:00.000153
DEBUG: Importing rule: go_unknown_command; took: 0:00:00.141353
DEBUG: Importing rule: gradle_no_task; took: 0:00:00.000412
DEBUG: Importing rule: gradle_wrapper; took: 0:00:00.000180
DEBUG: Importing rule: grep_arguments_order; took: 0:00:00.000142
DEBUG: Importing rule: grep_recursive; took: 0:00:00.000146
DEBUG: Importing rule: grunt_task_not_found; took: 0:00:00.000259
DEBUG: Importing rule: gulp_not_task; took: 0:00:00.000141
DEBUG: Importing rule: has_exists_script; took: 0:00:00.000130
DEBUG: Importing rule: heroku_multiple_apps; took: 0:00:00.000151
DEBUG: Importing rule: heroku_not_command; took: 0:00:00.000177
DEBUG: Importing rule: history; took: 0:00:00.000050
DEBUG: Importing rule: hostscli; took: 0:00:00.000178
DEBUG: Importing rule: ifconfig_device_not_found; took: 0:00:00.000164
DEBUG: Importing rule: java; took: 0:00:00.000158
DEBUG: Importing rule: javac; took: 0:00:00.000179
DEBUG: Importing rule: lein_not_task; took: 0:00:00.000186
DEBUG: Importing rule: ln_no_hard_link; took: 0:00:00.000130
DEBUG: Importing rule: ln_s_order; took: 0:00:00.000126
DEBUG: Importing rule: long_form_help; took: 0:00:00.000054
DEBUG: Importing rule: ls_all; took: 0:00:00.000170
DEBUG: Importing rule: ls_lah; took: 0:00:00.000145
DEBUG: Importing rule: man; took: 0:00:00.000155
DEBUG: Importing rule: man_no_space; took: 0:00:00.000053
DEBUG: Importing rule: mercurial; took: 0:00:00.000163
DEBUG: Importing rule: missing_space_before_subcommand; took: 0:00:00.000059
DEBUG: Importing rule: mkdir_p; took: 0:00:00.000117
DEBUG: Importing rule: mvn_no_command; took: 0:00:00.000139
DEBUG: Importing rule: mvn_unknown_lifecycle_phase; took: 0:00:00.000137
DEBUG: Importing rule: nixos_cmd_not_found; took: 0:00:00.139696
DEBUG: Importing rule: no_command; took: 0:00:00.000332
DEBUG: Importing rule: no_such_file; took: 0:00:00.000092
DEBUG: Importing rule: npm_missing_script; took: 0:00:00.000389
DEBUG: Importing rule: npm_run_script; took: 0:00:00.000178
DEBUG: Importing rule: npm_wrong_command; took: 0:00:00.000222
DEBUG: Importing rule: omnienv_no_such_command; took: 0:00:00.272584
DEBUG: Importing rule: open; took: 0:00:00.000281
DEBUG: Importing rule: pacman; took: 0:00:00.441756
DEBUG: Importing rule: pacman_invalid_option; took: 0:00:00.000429
DEBUG: Importing rule: pacman_not_found; took: 0:00:00.000095
DEBUG: Importing rule: path_from_history; took: 0:00:00.000079
DEBUG: Importing rule: php_s; took: 0:00:00.000186
DEBUG: Importing rule: pip_install; took: 0:00:00.000194
DEBUG: Importing rule: pip_unknown_command; took: 0:00:00.000178
DEBUG: Importing rule: port_already_in_use; took: 0:00:00.000252
DEBUG: Importing rule: prove_recursively; took: 0:00:00.000172
DEBUG: Importing rule: python_command; took: 0:00:00.000130
DEBUG: Importing rule: python_execute; took: 0:00:00.000145
DEBUG: Importing rule: python_module_error; took: 0:00:00.000060
DEBUG: Importing rule: quotation_marks; took: 0:00:00.000047
DEBUG: Importing rule: rails_migrations_pending; took: 0:00:00.000048
DEBUG: Importing rule: react_native_command_unrecognized; took: 0:00:00.000181
DEBUG: Importing rule: remove_shell_prompt_literal; took: 0:00:00.000055
DEBUG: Importing rule: remove_trailing_cedilla; took: 0:00:00.000046
DEBUG: Importing rule: rm_dir; took: 0:00:00.000120
DEBUG: Importing rule: rm_root; took: 0:00:00.000119
DEBUG: Importing rule: scm_correction; took: 0:00:00.000197
DEBUG: Importing rule: sed_unterminated_s; took: 0:00:00.000147
DEBUG: Importing rule: sl_ls; took: 0:00:00.000051
DEBUG: Importing rule: ssh_known_hosts; took: 0:00:00.000135
DEBUG: Importing rule: sudo; took: 0:00:00.000060
DEBUG: Importing rule: sudo_command_from_user_path; took: 0:00:00.000143
DEBUG: Importing rule: switch_lang; took: 0:00:00.000096
DEBUG: Importing rule: systemctl; took: 0:00:00.000196
DEBUG: Importing rule: terraform_init; took: 0:00:00.000129
DEBUG: Importing rule: test.py; took: 0:00:00.000047
DEBUG: Importing rule: tmux; took: 0:00:00.000127
DEBUG: Importing rule: touch; took: 0:00:00.000137
DEBUG: Importing rule: tsuru_login; took: 0:00:00.000130
DEBUG: Importing rule: tsuru_not_command; took: 0:00:00.000123
DEBUG: Importing rule: unknown_command; took: 0:00:00.000049
DEBUG: Importing rule: unsudo; took: 0:00:00.000044
DEBUG: Importing rule: vagrant_up; took: 0:00:00.000127
DEBUG: Importing rule: whois; took: 0:00:00.000264
DEBUG: Importing rule: workon_doesnt_exists; took: 0:00:00.000252
DEBUG: Importing rule: wrong_hyphen_before_subcommand; took: 0:00:00.000149
DEBUG: Importing rule: yarn_alias; took: 0:00:00.000189
DEBUG: Importing rule: yarn_command_not_found; took: 0:00:00.000387
DEBUG: Importing rule: yarn_command_replaced; took: 0:00:00.000226
DEBUG: Importing rule: yarn_help; took: 0:00:00.000151
DEBUG: Importing rule: yum_invalid_operation; took: 0:00:00.153753
DEBUG: Trying rule: dirty_unzip; took: 0:00:00.000080
DEBUG: Trying rule: git_hook_bypass; took: 0:00:00.000015
DEBUG: Trying rule: wrong_hyphen_before_subcommand; took: 0:00:00.000003
No fucks given
DEBUG: Total took: 0:01:05.783571
jgregoire commented 9 months ago

Same issue here.

DEBUG: Total took: 0:01:37.035107