Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installer freezes at end of installation #581

Closed
WasabiFan opened this issue Dec 24, 2015 · 7 comments
Closed

Installer freezes at end of installation #581

WasabiFan opened this issue Dec 24, 2015 · 7 comments

Comments

@WasabiFan
Copy link

When I run the Git for Windows 2.6.4 installer, the progress bar apparently indicates that the installation has completed (or is close to completing) but the installer never finishes. This seems very similar to the behavior in #351, but I do not have any custom scripts in my .profile or .bashrc (I don't even have either of those files in my user folder).

The installer process owns a conhost.exe instance which is using ~20% of my CPU. I let it run for around 4 hours, but it was pretty obvious that it wasn't coming back.

I'm on Windows 10 x64 (11082).

@WasabiFan
Copy link
Author

I should also mention that the console instance is currently running C:\Program Files\Git\post-install.bat.

@WasabiFan WasabiFan reopened this Dec 24, 2015
@dscho
Copy link
Member

dscho commented Jan 3, 2016

Any idea which commands are run inside the post-install.bat?

Hint: There are a number of shell scripts in /etc/post-install/ that are run in order. The first one, 01-devices.post, for example, tries to create a couple of files/directories in /dev/. If /dev/mqueue and /dev/fd both exist, therefore, it would be a good indicator that this script has finished. Likewise, manual inspection of the other files in /etc/post-install/ should give you a pretty good idea what the scripts are supposed to do and to diagnose where things start to hang.

@WasabiFan
Copy link
Author

After re-running it just now and giving it around an hour, there is no dev directory at all -- so I'd say it is somewhere before that. Where, exactly, I can't tell; the installer's log files don't include any information about the post-install.

When I kill the installer process and then manually run the post-install.bat script from an admin command prompt, it spews a bunch of errors about access denied -- but nonetheless it creates the /dev directory and the files within, so I am pretty sure that I am not accurately recreating the conditions of the installer.

@dscho
Copy link
Member

dscho commented Jan 5, 2016

it spews a bunch of errors about access denied

Would there be a chance to see the exact text it spews out?

@WasabiFan
Copy link
Author

Here's the console log. I did this from an admin CMD window after killing the installer process and rebooting, having given it half an hour from when the bar hit the ~100% mark.

C:\Program Files\Git>post-install.bat
mkdir: cannot change permissions of '/dev/shm': Permission denied
mkdir: cannot change permissions of '/dev/mqueue': Permission denied
'C:\\WINDOWS\\System32\\drivers\\etc\\hosts' -> '/etc/hosts'
'C:\\WINDOWS\\System32\\drivers\\etc\\protocol' -> '/etc/protocols'
'C:\\WINDOWS\\System32\\drivers\\etc\\services' -> '/etc/services'
'C:\\WINDOWS\\System32\\drivers\\etc\\networks' -> '/etc/networks'
The batch file cannot be found.

C:\Program Files\Git>dir
 Volume in drive C is Windows
 Volume Serial Number is 5C63-F55F

 Directory of C:\Program Files\Git

01/06/2016  04:59 PM    <DIR>          .
01/06/2016  04:59 PM    <DIR>          ..
01/04/2016  04:24 PM    <DIR>          bin
01/04/2016  04:25 PM    <DIR>          cmd
01/06/2016  04:59 PM    <DIR>          dev
01/06/2016  04:59 PM    <DIR>          etc
12/14/2015  05:14 PM           140,800 git-bash.exe
12/14/2015  05:14 PM           140,288 git-cmd.exe
11/30/2015  03:08 PM            18,765 LICENSE.txt
01/04/2016  04:25 PM    <DIR>          mingw64
12/14/2015  12:08 PM            60,534 ReleaseNotes.html
01/04/2016  04:26 PM    <DIR>          tmp
01/04/2016  04:26 PM           968,071 unins001.dat
01/04/2016  04:24 PM         1,300,779 unins001.exe
01/04/2016  04:24 PM    <DIR>          usr
               6 File(s)      2,629,237 bytes
               9 Dir(s)  45,799,550,976 bytes free

Or, just running the last line of post-install (after cleaning the directory and re-running the installer):

C:\Program Files\Git>@usr\bin\bash.exe --norc -c "export PATH=/usr/bin:$PATH; export SYSCONFDIR=/etc; for p in $(export LC_COLLATE=C; echo /etc/post-install/*.post); do test -e \"$p\" && . \"$p\"; done"
mkdir: cannot change permissions of '/dev/shm': Permission denied
mkdir: cannot change permissions of '/dev/mqueue': Permission denied
'C:\\WINDOWS\\System32\\drivers\\etc\\hosts' -> '/etc/hosts'
'C:\\WINDOWS\\System32\\drivers\\etc\\protocol' -> '/etc/protocols'
'C:\\WINDOWS\\System32\\drivers\\etc\\services' -> '/etc/services'
'C:\\WINDOWS\\System32\\drivers\\etc\\networks' -> '/etc/networks'

But again, it doesn't do the same thing when the installer is running itself. The dev directory is not created when the installer runs, but it is when I run it.

@dscho
Copy link
Member

dscho commented Feb 7, 2016

I should also mention that the console instance is currently running C:\Program Files\Git\post-install.bat.

I guess we will have to find a way how to redirect the output of this batch file into the install log when called with /LOG=<path> option (probably by using/querying {log}).

@dscho
Copy link
Member

dscho commented Feb 21, 2017

I guess we will have to find a way how to redirect the output of this batch file into the install log when called with /LOG= option (probably by using/querying {log}).

I implemented that a long time ago.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
@dscho @WasabiFan and others