bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

File completion scans unrelated directory


From: Bart Schaefer
Subject: File completion scans unrelated directory
Date: Thu, 29 Mar 2018 11:14:20 -0700

Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-redhat-linux-gnu'
-DCONF_VENDOR='redhat' -DLOCALEDIR='/usr/share/locale'
-DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H   -I.  -I. -I./include
-I./lib   -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches   -m64 -mtune=generic
uname output: Linux g001-ftp.us-west-2.elasticbeanstalk.com
4.4.19-29.55.amzn1.x86_64 #1 SMP Mon Aug 29 23:29:40 UTC 2016 x86_64
x86_64 x86_64 GNU/Linux
Machine Type: x86_64-redhat-linux-gnu

Bash Version: 4.2
Patch Level: 46
Release Status: release

Description:
For reasons I hope I don't need to go into, I have a directory with
275k files in it on an NFS volume.  This is mounted under /shared/.

Everything else on the host is on the local disk.

When I attempt to file-complete a path in /tmp, e.g.

# ls /tmp/b<TAB>

bash goes off running getdents() on everything in /shared/:

strace: Process 1553 attached
getdents(3, /* 514 entries */, 32768)   = 32752
getdents(3, /* 513 entries */, 32768)   = 32712
getdents(3, /* 512 entries */, 32768)   = 32744
getdents(3, /* 512 entries */, 32768)   = 32712
getdents(3, /* 510 entries */, 32768)   = 32712
getdents(3, /* 515 entries */, 32768)   = 32768
getdents(3, /* 514 entries */, 32768)   = 32720
(etc. for many minutes)

Why is completion scanning /shared/ when the file I care about is in /tmp/ ?

There is no way to interrupt bash while this is going on, so my shell
session is effectively jammed.

Repeat-By:
See description.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]