cantino/mcfly

mcfly stopped working (kernel issue)

hferreiro opened this issue · 17 comments

Since some time ago, I cannot get mcfly to work. After running its UI with ctrl-r, pressing enter or tab on any row just goes back to bash with an empty prompt.

I tried emptying my .bashrc or running mcfly -d search directly without success. Is there any way to debug this issue?

Does mcfly --version give output? And I assume you have eval "$(mcfly init bash)" in your bashrc?

I got the same mistake, and this is my bash and mcfly versions:
bash: 5.2.15
mcfly: 0.8.1

this issue would help:
dvorka/hstr#478

Does mcfly --version give output? And I assume you have eval "$(mcfly init bash)" in your bashrc?

Yes, it's initialized as that. Running mcfly works, what's not working is selecting something in its UI.

this issue would help: dvorka/hstr#478

I can confirm this is the issue. The workaround at dvorka/hstr#478 (comment) is working for me:

$ sysctl -w dev.tty.legacy_tiocsti=1

@cantino hstr is going to fix the same issue in the next release: dvorka/hstr#486. Would mcfly fix this?

If someone wants to work on this, I'd be happy to accept a fix. Does setting READLINE_LINE have the same effect as using tiocsti?

+1 for the fix, odd!

Fresh install of EndeavourOS, same issue:

  • GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
  • mcfly 0.8.1

Thanks for the fix hferreiro

$ sysctl -w dev.tty.legacy_tiocsti=1 do we still have to use this? Also does it need to be turned off when we git a fix in mcfly?

Kernel: 6.7.4-zen1-1-zen

$ sysctl -w dev.tty.legacy_tiocsti=1 do we still have to use this? Also does it need to be turned off when we git a fix in mcfly?

Kernel: 6.7.4-zen1-1-zen

I'm still needing to run this in my terminal to be able to use McFly. The latest Kernel and updates were applied yesterday.

$ sysctl -w dev.tty.legacy_tiocsti=1 do we still have to use this? Also does it need to be turned off when we git a fix in mcfly?

Kernel: 6.7.4-zen1-1-zen

I'm using Debian Testing with kernel version 6.6.13-amd64, and my current mcfly of version 0.8.4 just works without any special configuration at all, although the kernel config doesn't set tiocsti:
image

waja commented

For me:

❯ uname -r
6.8.0-76060800daily20240311-generic
❯ cat /boot/config-6.8.0-76060800daily20240311-generic | rg TIOCSTI
# CONFIG_LEGACY_TIOCSTI is not set
❯ source /etc/os-release ; echo $VERSION
22.04.4 LTS (Jammy Jellyfish)

it is needed to set dev.tty.legacy_tiocsti=1, to work around this issue.

This works on Arch (EndeavourOS) to make the fix survive a reboot:

echo "dev.tty.legacy_tiocsti=1" | sudo tee -a "/etc/sysctl.d/custom.conf"

Confirmed this is #333

Is there a workaround for systems where you don't have root access?

Closed, this is #333.