tieto team mailing list archive
-
tieto team
-
Mailing list archive
-
Message #01080
[Bug 1390061] Re: bash-completion tilde expansion every time
Now over one year after this problem was reported and a patch was
provided the ticket is still not assigned to anyone.
This problem is a big pain for Enterprise users and it makes Ubuntu very
slow when the terminal is used.
Please apply the patch or explain what we can do to get some attention
to this problem
--
You received this bug notification because you are a member of Tieto,
which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1390061
Title:
bash-completion tilde expansion every time
Status in bash-completion package in Ubuntu:
Confirmed
Bug description:
1) The release of Ubuntu you are using, via 'lsb_release -rd' or System -> About Ubuntu
root@ubuntu1404:~# lsb_release -rd
Description: Ubuntu 14.04.1 LTS
Release: 14.04
2) The version of the package you are using, via 'apt-cache policy pkgname' or by checking in Software Center
root@ubuntu1404:~# apt-cache policy bash-completion
bash-completion:
Installed: 1:2.1-4
Candidate: 1:2.1-4
Version table:
*** 1:2.1-4 0
500 http://se.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
100 /var/lib/dpkg/status
3) What you expected to happen
When I use bash-completion it should not read the /etc/passwd file or contact the Active directory.
It is very hard to see this problem unless you run this on a machine with slow authentication... but the commands below will show if the /etc/passwd or sssd are used by bash_completion or not:
root@ubuntu1404:~# strace bash -c ". /etc/bash_completion; quote_readline '/something'; echo" 2>&1 | grep /etc/passwd
root@ubuntu1404:~# strace bash -c ". /etc/bash_completion; quote_readline '/something'; echo" 2>&1 | grep sss
When the ~ are escaped on line 545 and 547 in /usr/share/bash-
completion/bash_completion then bash_completion works as expected.
4) What happened instead
Every time you use tab-completion in bash on ubuntu 14.04 it will read
the /etc/passwd file and if sssd are installed and configured for
Active Directory authentication it will talk to sssd... and this can
be slow in some environments.
root@ubuntu1404:~# strace bash -c ". /etc/bash_completion; quote_readline '/something'; echo" 2>&1 | grep /etc/passwd
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
root@ubuntu1404:~# strace bash -c ". /etc/bash_completion; quote_readline '/something'; echo" 2>&1 | grep sss
open("/lib/i386-linux-gnu/libnss_sss.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/var/lib/sss/mc/passwd", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
connect(4, {sa_family=AF_LOCAL, sun_path="/var/lib/sss/pipes/nss"}, 110) = 0
I have made a small patch for this problem and I have not found any side effects:
--- /usr/share/bash-completion/bash_completion.orig 2014-11-06 10:36:14.981888369 +0100
+++ /usr/share/bash-completion/bash_completion 2014-11-06 10:36:25.142070963 +0100
@@ -542,9 +542,9 @@
elif [[ $1 == \'* ]]; then
# Leave out first character
printf -v $2 %s "${1:1}"
- elif [[ $1 == ~* ]]; then
+ elif [[ $1 == \~* ]]; then
# avoid escaping first ~
- printf -v $2 ~%q "${1:1}"
+ printf -v $2 \~%q "${1:1}"
else
printf -v $2 %q "$1"
fi
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash-completion/+bug/1390061/+subscriptions