|Summary:||bash-completion cause GDM to not start session in Modular X|
|Product:||[Fedora] Fedora||Reporter:||Paul Dickson <paul>|
|Component:||bash-completion||Assignee:||Ville Skyttä <scop>|
|Status:||CLOSED RAWHIDE||QA Contact:||Fedora Extras Quality Assurance <extras-qa>|
|Fixed In Version:||20050721-2.fc5||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2005-11-28 20:46:36 UTC||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
Description Paul Dickson 2005-11-28 12:32:11 UTC
Description of problem: If bash_completion.sh exists in /etc/profile.d, /etc/X11/gdm/Xsession ultimately runs that script twice. The second time it seems to perform an "exit", which terminates Xsession (which invokes /etc/profile and ~/.profile with a ".". Version-Release number of selected component (if applicable): bash-completion-20050721-1.fc5 bash-3.0-37 gdm-22.214.171.124-13 How reproducible: Always Steps to Reproduce: 1. My ~/.profile does ". /etc/profile" then adds additional paths to PATH 2. Logout, login via gdm. 3. Actual results: GDM complains that the session last less than 10 seconds. There is no error messages. Expected results: Gnome's (or KDE's) session should start. Additional info: Debugging echo's trace the run through /etc/X11/gdm/Xsession through a successful run of ". /etc/profile", but the echo after ". $HOME/.profile" never happens. If I rename the bash_completion.sh script (bash_completion.sh.tmp), I can log in. I can't seem to find an exit in bash_completion.sh.
Comment 1 Paul Dickson 2005-11-28 12:32:11 UTC
Created attachment 121541 [details] My $HOME/.profile
Comment 2 Ville Skyttä 2005-11-28 13:29:12 UTC
Reproduced. One way to debug stuff like this is to add eg. a "set -x" somewhere near the top of /etc/X11/gdm/Xsession, then try logging in, and while the gdm dialog about things going south is still visible, peek into /tmp/xses-$USERNAME.XXXXXX from a virtual terminal. Anyway, from debugging like in above, it seems it has something to do with the "readonly" stuff at top of /etc/bash_completion. When the session prematurely aborts (when sourcing it for the second time), the "set +v" at the top is the last thing run. I don't see anything wrong offhand with the code, but one potential workaround is to change this at the top of /etc/profile.d/bash_completion.sh: [ -z "$BASH_VERSION" ] && return ...to: [ -z "$BASH_VERSION" -o -n "$BASH_COMPLETION" ] && return I'm not sure if this is the best possible way around it but it seems to work for me. Could you try it out?
Comment 3 Paul Dickson 2005-11-28 15:26:24 UTC
Yes adding the ' -o -n "$BASH_COMPLETION"' works around the problem for me.
Comment 4 Ville Skyttä 2005-11-28 20:46:36 UTC
Thanks, this workaround will be in 20050721-2.fc5.