Subject: Bash pauses (again)
From: [email-masked] (Robert Mecklenburg)

23 Oct 1998 08:34:46 -0700
Message-ID: <199810221326.JAA09064.cygnus.gnu-win32@phldev1>
To: [email-masked]

I experience 10 second pauses in bash every time I cd to a different
drive letter.  I've gone through the last 8 months of archives and
still don't have a very satisfactory solution.  My configuration is:

	- B19.1 release, NT 4.0 SP3
	- latest coolview
	- pre-compile, modified bash from Sergey's site
	- MAIL and MAILCHECK environment variables not set
	- added "local", "localhost", "unknown" to hosts file
	- no "non-local" directories in my PATH
	- HOME environment explicitly set to D:\Users\Mecklen

I ran snoop and discovered that when I cd to a different drive letter
bash is sending out a bunch of network packets.  I have a DNS server,
primary and secondary WINS servers, and "Enable DNS for Windows
Resolution" set.  The packets that are sent are as follows:

	send Primary WINS server, port 137 
	recv Primary WINS server, port 137 
	send Secondary WINS server, port 137
	recv Secondary WINS server, port 137
	send 132.253.243.255, port 137
	send 132.253.243.255, port 137
	send 132.253.243.255, port 137
	send DNS Server, port 53
	recv DNS Server, port 3534
	send DNS Server, port 53
	recv DNS Server, port 3535

This sequence seems to repeat itself once or twice, then the cd
completes and the network is quiet.  I tried disabling "IP Forwarding"
and "DNS for Windows Resolution".  Bash still paused and still sent
many packets out, but didn't contact the DNS server.  Finally, I
simply removed the WINS servers from the configuration.  This resulted
in the following packet stream:

	send 132.253.243.255, port 137
	send 132.253.243.255, port 137
	send 132.253.243.255, port 137
	send 132.253.243.255, port 137
	...about 20 times...

I suppose I should mention that I have a dedicated 115Kbps network
connection and these hosts are not local (except for this last bunch)
so this all takes about 10 seconds on every drive change.

I have found one solution, but I don't like it.  If I use "mount D:
/d" (I want text mounts) performance improves.  Unforunately, I am
using cygnus as part of a complex portable build system (280
makefiles, 3000 source files, 7 platforms, etc.) and this mount breaks
the build system (because pwd now returns a different form as does $<
in make, among other things).  Adapting to the new mounting scheme
would be difficult.  So I went on to checkout a few other suggestions.

I've added the cygnus environment variables to my environment through
the registry (My Computer|Properties|Environment) and start the
bash.exe executable directly.  Changing the "Start In" directory has
no effect on the pausing behavior.

In a Sept 3rd message "Jim Clark <[email-masked]>" stated the
pause does not occur if bash is started from a Dos shell (command
prompt).  In my case, this is not true.  I can start bash under a DOS
shell (by typing "bash" since it is in my path) and cd still pauses 10
seconds.

On Sept 5th Chis Faylor says it is a bug in bash, which is fixed if
you set your HOME variable.  This is not my experience, my HOME
environment variable is always set and I still have the cd pause
problem.

Back on July 20, "[email-masked] (Mikey)" wrote:

	bash assumes : means remote host so you
	1 load winsock
	2 search for a host named c
	3 discover no host
	4 convert to cygwin32 path
	5 cd /

and I guess this is what is happening.  Is there anyway to disable
this behavior?  Why would bash assume a : means host name?  It
certainly doesn't on unix platforms.  Maybe Mikey means that the
cygnus support library is doing this, but why?  It doesn't seem to be
portable behavior (since unix doesn't do this).

Michael Hirmke also remarks about this and says that
<machine>:/<remote-path> is an NFS name.  Maybe I don't understand
NFS, but that is certainly not an NFS path on any Unix system I know.
The automounter is tied to a standard unix path like /net/<machine>.
Maybe Michael is talking about NT NFS?

So, have I exhausted the possibilities?

	- it isn't mail checking (modified bash, no MAIL/MAILCHECK)
	- latest libraries
	- added local localhost unknown to hosts file
	- not a path problem
	- "Start In" value has no effect
	- not a bogus HOME environment
	- start from a dos shell, still slow

	- can't use //drive/path
	- can't mount drives

Any thoughts would be appreciated,
-- 
Robert Mecklenburg            Speed Dial: *1-036     Voice: 610-834-1010 x248
Parametric Technology Corp.                          FAX:   610-834-7652
West Conshohocken, PA         Home:  215-413-4018    [email-masked]
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".