[Issue 15284] dmd installer hangs when updating installed windows version

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Tue Nov 10 08:34:41 PST 2015


https://issues.dlang.org/show_bug.cgi?id=15284

--- Comment #12 from ZombineDev <petar.p.kirov at gmail.com> ---
(In reply to Martin Nowak from comment #11)
> Overall I get the impression we should depart with an installer system where I have to host binary plugins myself [¹] (so they don't get lost) and spend over an hour to make the installer log something.
> There has been some recent development with NSIS-3.0, but I wonder what .msi installer tools are out there.
> 
> [¹]: https://dlang.dawg.eu/downloads/others/nsisunz-dll-1_0.zip

I would like to see an installer written in D, so one can change anything he
want in a single sane language. Obviously this is not trivial to do I don't
expect anyone to write an installer system from scratch, but after reading the
DMD installer script I got the feeling that if it wasn't for the GUI, it would
take fewer lines to achieve the same in D and the code would be more
comprehensible.
I feel sorry for the poor soul who had to write this: [1]

> 
> On topic I updated
> https://dlang.dawg.eu/downloads/dmd.2.069.0~fix15824/
> to write an install.log into your C:\D folder. Seems like the installer
> always appends to the log. Can you please run that and send me the log?
> 
> Maybe something in our updated VS/SDK detection is the cause for the hang.

After a few seconds I got a ~7MB file log file. You are right to think that the
issue is due to the updated VS/SDK detection. The contents of install.log are:
Call: 2674
Jump: 2691
Jump: 2708
Check previous dmd installation
Check dmd already installed
DetectVSAndSDK
Call: 2564
Read VisualStudio\*\Setup\VC
detect KitsRoot*
detect KitsRoot*
detect KitsRoot*
detect KitsRoot*
detect KitsRoot*
[... repeated infinately ...]

Previously I had a VS installed on this computer and later I uninstalled it,
and probably some of the SDKs were left there. Is it possible that this is
confusing the installer?
Anyway, looking at this change [1], it looks like there is an infinite loop.
95% of the time when I referesh the call stack it is in
kernelbase.dll:RegOpenKeyEx.

[1]:
https://github.com/D-Programming-Language/installer/blob/master/windows/EnvVarUpdate.nsh

[2]:
https://github.com/D-Programming-Language/installer/commit/818056aa2242d4ffb36807623d193f58e860a8e2#diff-b7d237f81c7c9c97afe3ee2097c8b267R395

--


More information about the Digitalmars-d-bugs mailing list