ohmybash / oh-my-bash

A delightful community-driven framework for managing your bash configuration, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
https://ohmybash.github.io
MIT License
5.96k stars 661 forks source link

Very slow bash prompt in Rocky 8.4 #323

Open kjy5 opened 2 years ago

kjy5 commented 2 years ago

I often have to interact with a server running Rocky Linux 8.4 and I noticed recently that after logging in it takes almost a minute for the Oh My Bash prompt to show up. After it does, it behaves normally for a while, but will occasionally get stuck (like it's waiting through a timeout period) before showing the prompt again. This is most noticeable when I run cd to get back to my home directory.

I've replicated this on a fresh install with no addons, themes, or plugins.

Thanks for your help!

TruncatedDinoSour commented 1 year ago

Yeah, oh-my-bash (actually the whole oh-my-* project family seemingly is) is very poorly optimised, I actually just bench marked it, you might want to switch to some other plugin manager https://blog.ari-web.xyz/b/comparison-between-the-oh-my-bash-and-baz-plugin-managers-for-gnu-bash/

From the stars, people seem to like this one: https://github.com/rossmacarthur/sheldon

akinomyoga commented 1 year ago

@TruncatedDinosour So have you identified and solved the reported issue in Rocky 8.4? What was the cause and what is the solution? The delay in the original report is about one minute, but the delay of oh-my-bash in your benchmark is about 0.1 sec, which is different from the reported delay by an order of magnitude. Also, the one-minute delay does not seem to be observed in other environments. So it seems to me that there is a separate issue from the basic design of oh-my-bash as a plugin manager.

TruncatedDinoSour commented 1 year ago

@TruncatedDinosour So have you identified and solved the reported issue in Rocky 8.4? What was the cause and what is the solution? The delay in the original report is about one minute, but the delay of oh-my-bash in your benchmark is about 0.1 sec, which is different from the reported delay by an order of magnitude. Also, the one-minute delay does not seem to be observed in other environments. So it seems to me that there is a separate issue from the basic design of oh-my-bash as a plugin manager.

Oof wasn't trying to make you angry

Maybe it's from resource usage ? And as oh-my-bash is already quite slow to load, if system load is high it might be sloww on anothner level

TruncatedDinoSour commented 1 year ago

Hm, how's your resource usage while it takes long to load ? @kjy5

Also, can you provide me with your bash binary ?

TruncatedDinoSour commented 1 year ago

Maybe https://superuser.com/questions/166359/why-is-my-ssh-login-slow is related if you're using ssh, wait let me get a rocky linux vm

TruncatedDinoSour commented 1 year ago

I often have to interact with a server running Rocky Linux 8.4 and I noticed recently that after logging in it takes almost a minute for the Oh My Bash prompt to show up. After it does, it behaves normally for a while, but will occasionally get stuck (like it's waiting through a timeout period) before showing the prompt again. This is most noticeable when I run cd to get back to my home directory.

I've replicated this on a fresh install with no addons, themes, or plugins.

Thanks for your help!

How did you recreate it, I'm unable to on rocky 8.4: Rocky Linux 8.4 (Green Obsidian) x86_64

TruncatedDinoSour commented 1 year ago

@TruncatedDinosour So have you identified and solved the reported issue in Rocky 8.4? What was the cause and what is the solution? The delay in the original report is about one minute, but the delay of oh-my-bash in your benchmark is about 0.1 sec, which is different from the reported delay by an order of magnitude. Also, the one-minute delay does not seem to be observed in other environments. So it seems to me that there is a separate issue from the basic design of oh-my-bash as a plugin manager.

Oof wasn't trying to make you angry

Maybe it's from resource usage ? And as oh-my-bash is already quite slow to load, if system load is high it might be sloww on anothner level

It might be ? I get 1-2s if I compile rust code on the guest

TruncatedDinoSour commented 1 year ago
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_white %s ''
++++ _omb_deprecate_const 20000 echo_orange '' 'Please use '\''_omb_term_red'\''.'
++++ local __ver=20000 __old=echo_orange __value= '__msg=Please use '\''_omb_term_red'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_orange %s ''
++++ _omb_deprecate_const 20000 echo_bold_black '' 'Please use '\''_omb_term_bold_black'\''.'
++++ local __ver=20000 __old=echo_bold_black __value= '__msg=Please use '\''_omb_term_bold_black'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_black %s ''
++++ _omb_deprecate_const 20000 echo_bold_red '' 'Please use '\''_omb_term_bold_brown'\''.'
++++ local __ver=20000 __old=echo_bold_red __value= '__msg=Please use '\''_omb_term_bold_brown'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_red %s ''
++++ _omb_deprecate_const 20000 echo_bold_green '' 'Please use '\''_omb_term_bold_green'\''.'
++++ local __ver=20000 __old=echo_bold_green __value= '__msg=Please use '\''_omb_term_bold_green'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_green %s ''
++++ _omb_deprecate_const 20000 echo_bold_yellow '' 'Please use '\''_omb_term_bold_olive'\''.'
++++ local __ver=20000 __old=echo_bold_yellow __value= '__msg=Please use '\''_omb_term_bold_olive'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_yellow %s ''
++++ _omb_deprecate_const 20000 echo_bold_blue '' 'Please use '\''_omb_term_bold_navy'\''.'
++++ local __ver=20000 __old=echo_bold_blue __value= '__msg=Please use '\''_omb_term_bold_navy'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_blue %s ''
++++ _omb_deprecate_const 20000 echo_bold_purple '' 'Please use '\''_omb_term_bold_purple'\''.'
++++ local __ver=20000 __old=echo_bold_purple __value= '__msg=Please use '\''_omb_term_bold_purple'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_purple %s ''
++++ _omb_deprecate_const 20000 echo_bold_cyan '' 'Please use '\''_omb_term_bold_teal'\''.'
++++ local __ver=20000 __old=echo_bold_cyan __value= '__msg=Please use '\''_omb_term_bold_teal'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_cyan %s ''
++++ _omb_deprecate_const 20000 echo_bold_white '' 'Please use '\''_omb_term_bold_white'\''.'
++++ local __ver=20000 __old=echo_bold_white __value= '__msg=Please use '\''_omb_term_bold_white'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_white %s ''
++++ _omb_deprecate_const 20000 echo_bold_orange '' 'Please use '\''_omb_term_bold_red'\''.'
++++ local __ver=20000 __old=echo_bold_orange __value= '__msg=Please use '\''_omb_term_bold_red'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))
++++ printf -v echo_bold_orange %s ''
++++ _omb_deprecate_const 20000 echo_underline_black '' 'Please use '\''_omb_term_underline_black'\''.'
++++ local __ver=20000 __old=echo_underline_black __value= '__msg=Please use '\''_omb_term_underline_black'\''.'
++++ [[ -n '' ]]
++++ (( _omb_version >= __ver ))

This might be one of the reasons why it slows down Colours are taking a bit too