This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: Very slow Cygwin startup on Windows 7
- From: "Dennis Hagarty (dehagart)" <dehagart at cisco dot com>
- To: "cygwin at cygwin dot com" <cygwin at cygwin dot com>
- Date: Tue, 17 Feb 2015 16:33:11 +0000
- Subject: RE: Very slow Cygwin startup on Windows 7
- Authentication-results: sourceware.org; auth=none
- References: <3FEEC3A37A0B0A48AA326075128C32EE4DC9F0E8 at xmb-rcd-x01 dot cisco dot com> <87mw4nugdx dot fsf at Rainer dot invalid> <3FEEC3A37A0B0A48AA326075128C32EE4DC9F137 at xmb-rcd-x01 dot cisco dot com> <869208266 dot 20150210030528 at yandex dot ru> <3FEEC3A37A0B0A48AA326075128C32EE4EE263B8 at xmb-rcd-x01 dot cisco dot com> <435476431 dot 20150217135513 at yandex dot ru>
>> Apologies for my slow response - urgent RFI's.
>No need for apology :) And thank you for chiming back in. Your help is much
>appreciated.
>> Ok, so I reverted nsswitch to the 'files db' setting.
>> I stopped cygserver
>> I ran your commands to recreate /etc/passwd and /etc/group
>> (they now contain 1 line and 3 lines respectively - before it had about 10 & 21 lines in each)
>That's surprisingly small amount of groups.
>Even on local system, I have 11(13 if elevated) groups attached to my userid.
>Perhaps, the execution of the id -G has been influenced by your current (at
>that moment) /etc/group file.
Not sure why it was only a few. I've rerun it (took more than 5 mins) and I get quite a few more - about
See below...
>> To create a bash terminal window (from cmd) takes about 5-6 minutes.
>> cmd /v:on /c "echo !TIME! & C:\cygwin64\bin\mintty.exe /bin/echo "test" & echo !TIME!"
>> 11:01:20.27
>> 11:06:59.78 = 5:39.51
>> Starting cygserver:
>> 11:08:31.55
>> 11:08:31.62 = 0:00.07
>> Stopping it again:
>> 11:09:19.02
>> 11:15:04.45 = 05:45.43
>> With the 'db' entry excluded as a control:
>> 11:15:56.80
>> 11:15:56.90 = 00:00.10
>> I reverted back to use files+db and my larger passwd and group files, turned on cygserver:
>> 11:19:34.31
>> 11:19:34.38 = 00:00.07
>Could you please do me a favor and repeat the test with a little deviation of
>my previous suggestion?
>1. Remove /etc/{nsswitch.conf,passwd,group} files. (Rename, move away - by
>your choice.)
>2. Stop cygserver, if it is running, and any other Cygwin-related programs.
>3. Start the mintty (elevated, if need) with write access to /etc. Supposedly,
>this will be slow.
>4. Make sure id -G lists all the groups you're member of.
>The `id -znG | tr "\0" "\n"` would probably be more visible.
>5. Repeat the steps from previous suggestion.
> getent passwd $(id -u) > /etc/passwd
> getent group $(id -G) > /etc/group
> printf "%s\n" "passwd: files db" "group: files db" > /etc/nsswitch.conf
> 6. Close and restart mintty
After I'd run the id -znG, it found 87 groups.
Then I did this (even with cygserver running)
~ getent passwd $(id -u) > /etc/passwd
~ getent group $(id -G) > /etc/group
0 [main] getent 48156 transport_layer_pipes::connect: lost connection to cygserver, error = 2
~ wc -l /etc/group
58 /etc/group
Since it seems like cygserver stopped, it took a while to complete.
Anyway, with cygserver stopped, I ran the getent again elevated and got 83.
~ wc -l /etc/group
83 /etc/group
Not really sure how many groups I'm a member of (in another tool), but seems about right.
Hope that helps
Dennis
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple