classification
Title: Windows Installer fails with error 0x80091007 when trying to install debugging symbols
Type: security Stage:
Components: Windows Versions: Python 3.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: Igor.Skochinsky, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2017-10-11 21:23 by Igor.Skochinsky, last changed 2017-10-12 21:47 by steve.dower.

Messages (4)
msg304182 - (view) Author: Igor Skochinsky (Igor.Skochinsky) Date: 2017-10-11 21:23
Trying to install 3.6.3 on Windows 10 and getting this error.

Repro steps:

1. Download python-3.6.3.exe or python-3.6.3-amd64.exe, run it
2. Select "Customize Installation"
3. Next
4. In Advanced Options, select 
[x] Install for all users (not sure if important)
[x] Download debugging symbols
change path to F:\Python36 (not sure if it matters but my system drive is F: and C: is missing except for when I plug in a USB drive)
Ucheck
[ ] Associate files with Python
Click Install and accept elevation prompt. After a while it fails with 

Error 0x80091007 - Hash value not correct.

Interestingly, "log file" link does not work. I had to go hunt for the log in %temp% myself. The relevant parts:

Error 0x80091007: Hash mismatch for path: F:\ProgramData\Package Cache\.unverified\core_AllUsers_pdb, expected: A4B6E4A818E49F000513774F034EC98A194E3C3D, actual: 36C7B852E586D26F4D239ED72EFE5FFBEBA21825
Error 0x80091007: Failed to verify hash of payload: core_AllUsers_pdb
Failed to verify payload: core_AllUsers_pdb at path: F:\ProgramData\Package Cache\.unverified\core_AllUsers_pdb, error: 0x80091007. Deleting file.
Application requested retry of payload: core_AllUsers_pdb, encountered error: 0x80091007. Retrying...

There are a few more retries basically with the same result. However, this one is interesting:

Acquiring package: core_AllUsers_pdb, payload: core_AllUsers_pdb, copy from: F:\Users\Igor\Downloads\core_pdb.msi

I don't have such a file there, just the installer .exe
msg304254 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2017-10-12 15:25
Can you try moving the installer exe to its own (empty) directory before running it?

The correct file is on the server (I just redownloaded and verified), so the most likely cause is that you ran a /layout at some point in the past and are getting that file locally. As you saw in the log, we will look in the directory the installer is launched from for a matching local file, so that it's possible to download all the optional components and then do a full install while offline.
msg304280 - (view) Author: Igor Skochinsky (Igor.Skochinsky) Date: 2017-10-12 18:53
Hi Steve,

 Thanks for the suggestion! I tried that and while it did not succeed it
gave me an idea of what went wrong last time since it complained about lack
of disk space. I have *not* run the /layout but now that I checked I indeed
had core_d.msi and core_pdb.msi (and a few more) in the Downloads
directory, so I think maybe the installer tried to download them but ran
out of space and the download was incomplete.

Another possibility is that the .msi was for the wrong installer - I first
tried installing the x86 version but later changed my mind but since I did
not expect it to download extra files into the same directory I did not
clean them. Also it seems the downloaded .msi files have the original
timestamp (16-09-27) so I did not notice them when sorting my downloads by
date until I tried to look for .msi files specifically.

In the end I guess this could be closed as PEBKAC but I think maybe some
more testing in low-disk-space conditions and/or installing x86 then x64
from the same directory could uncover some real issues.

In general, I found the 3.3 install experience not very straightforward
compared to 2.7 - I expected that the installer contains everything
necessary (since I did *not* pick "webinstall" one) and won't download
extra files (with the exception of the PDB option which did say
"download"). If the .msi files came from the .exe itself, I'd expect them
to be extracted into a unique temporary directory and not next to the exe.

I will work on freeing some space and then try again.

> Steve Dower <steve.dower@python.org> added the comment:
>
> Can you try moving the installer exe to its own (empty) directory before
> running it?
>
msg304291 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2017-10-12 21:47
FWIW, all your assumptions about how it should work are correct. If you don't know how the files got there instead of a randomly generated temporary path, then I don't know either. /layout is the only time we download anything to a non-temp directory.
History
Date User Action Args
2017-10-12 21:47:12steve.dowersetmessages: + msg304291
2017-10-12 18:53:00Igor.Skochinskysetmessages: + msg304280
2017-10-12 15:25:09steve.dowersetmessages: + msg304254
2017-10-12 00:45:57ned.deilysetnosy: + paul.moore, tim.golden, zach.ware, steve.dower
components: + Windows, - Installation
2017-10-11 21:23:15Igor.Skochinskycreate