[Bug 790043] Re: Bash-completion slows up the start of bash

Peter Cordes peter at cordes.ca
Mon Dec 1 20:39:12 UTC 2014


/etc/profile.d/bash_completion.sh only sources /usr/share/bash-
completion/bash_completion if it hasn't been already.  note the check on
-z "$BASH_COMPLETION_COMPAT_DIR", which the giant bash_completion script
defines with

: ${BASH_COMPLETION_COMPAT_DIR:=/etc/bash_completion.d}
readonly BASH_COMPLETION_COMPAT_DIR

 So I guess BASH_COMPLETION_COMPAT_DIR is the canonical way to check if
it's already loaded, since the variable gets marked readonly.  (That
prevents even unset from working on it.)

 This doesn't help if profile.d goes first, and then bash.bashrc or the
user's ~/.bashrc sources completions without checking, though.

 The commented-out lines in the default /etc/bash.bashrc should have the same check added, if they haven't.  My /etc/bash.bashrc.dpkg-old from 2013 still shows it with the crusty old:
# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

/etc/profile.d is a silly place to have this, though.    How and whether
programmable completion is enabled by default is a topic for another
bug, but I don't think there's any way to justify having it for login
shells but not for non-login shells.  xterm, gnome-terminal, etc. all
normally start non-login shells.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash-completion in Ubuntu.
https://bugs.launchpad.net/bugs/790043

Title:
  Bash-completion slows up the start of bash

Status in bash-completion package in Ubuntu:
  Triaged

Bug description:
  Binary package hint: bash-completion

  I have been noticing that bash has unusually slow start-up times.
  After looking into the problem, I found out this is mostly caused by
  the execution of /etc/bash_completion (calls to this exist in several
  places). Of course, removing them speeds up the start but leaves a
  less functional shell. As a work-around I would like to suggest
  starting up /etc/bash_completion in the background. In this way, bash
  will start quickly, have access only to basic built-in completions for
  the first 2 seconds until /etc/bash_completion finishes executing.

  ProblemType: Bug
  DistroRelease: Ubuntu 11.04
  Package: bash-completion 1:1.3-1ubuntu3
  ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
  Uname: Linux 2.6.38-8-generic x86_64
  Architecture: amd64
  Date: Sun May 29 22:43:51 2011
  EcryptfsInUse: Yes
  PackageArchitecture: all
  ProcEnviron:
   LANGUAGE=en_US.UTF-8:en
   PATH=(custom, no user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: bash-completion
  UpgradeStatus: Upgraded to natty on 2011-04-24 (35 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash-completion/+bug/790043/+subscriptions



More information about the foundations-bugs mailing list