Closed Bug 1896868 Opened 2 months ago Closed 2 months ago

stub installer hangs instead of downloading full installer

Categories

(Firefox :: Installer, defect, P1)

defect

Tracking

()

RESOLVED FIXED
128 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox126 --- unaffected
firefox127 + fixed
firefox128 blocking fixed

People

(Reporter: jcristau, Assigned: bhearsum, NeedInfo)

References

Details

(Keywords: regression)

Attachments

(4 files)

It seems that since the InetBgDL.dll update, in some circumstances the stub installer fails to download the full installer, and just sits with the progress bar at 0%.
Will noticed that the new InetBgDL.dll has a dependency on vcruntime140.dll which we don't ship, which could maybe explain this?

Summary: stub installer hangs instead of → stub installer hangs instead of downloading full installer

Set release status flags based on info from the regressing bug 1895492

:bhearsum, since you are the author of the regressor, bug 1895492, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

FTR, I used Procmon to look at what the installer was doing when it was stuck in the Windows Sandbox. As illustrated by the logs below, it was desperately trying to load VCRUNTIME140.dll from either the temporary directory where we have our stub installer EXE and DLLs or C:\Windows\SysWOW64\VCRUNTIME140.dll but my system didn't have that DLL and we don't ship it either as per Comment 0...

13:01:20.2153602	setup-stub.exe	5068	Load Image	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	Image Base: 0x74680000, Image Size: 0x48000
13:01:20.2155307	setup-stub.exe	5068	CloseFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	
13:01:20.2158063	setup-stub.exe	5068	QueryOpen	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\VCRUNTIME140.dll	NAME NOT FOUND	
13:01:20.2163282	setup-stub.exe	5068	CreateFile	C:\Windows\SysWOW64\VCRUNTIME140.dll	NAME NOT FOUND	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
13:01:20.4172301	setup-stub.exe	5068	QueryOpen	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	CreationTime: 15-May-24 13:00:58, LastAccessTime: 15-May-24 13:01:20, LastWriteTime: 15-May-24 13:00:58, ChangeTime: 15-May-24 13:00:58, AllocationSize: 28,672, EndOfFile: 24,992, FileAttributes: A
13:01:20.4173443	setup-stub.exe	5068	CreateFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	NAME COLLISION	Desired Access: Generic Write, Read Attributes, Disposition: Create, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: A, ShareMode: Read, AllocationSize: 0
13:01:20.4175429	setup-stub.exe	5068	QueryOpen	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	CreationTime: 15-May-24 13:00:58, LastAccessTime: 15-May-24 13:01:20, LastWriteTime: 15-May-24 13:00:58, ChangeTime: 15-May-24 13:00:58, AllocationSize: 28,672, EndOfFile: 24,992, FileAttributes: A
13:01:20.4177022	setup-stub.exe	5068	CreateFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
13:01:20.4177421	setup-stub.exe	5068	CreateFileMapping	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	FILE LOCKED WITH ONLY READERS	SyncType: SyncTypeCreateSection, PageProtection: PAGE_EXECUTE_READWRITE
13:01:20.4177581	setup-stub.exe	5068	QueryStandardInformationFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	AllocationSize: 28,672, EndOfFile: 24,992, NumberOfLinks: 1, DeletePending: False, Directory: False
13:01:20.4179455	setup-stub.exe	5068	CreateFileMapping	C:	SUCCESS	SyncType: SyncTypeOther
13:01:20.4180625	setup-stub.exe	5068	CloseFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	
13:01:20.4183073	setup-stub.exe	5068	QueryOpen	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	CreationTime: 15-May-24 13:00:58, LastAccessTime: 15-May-24 13:01:20, LastWriteTime: 15-May-24 13:00:58, ChangeTime: 15-May-24 13:00:58, AllocationSize: 28,672, EndOfFile: 24,992, FileAttributes: A
13:01:20.4184748	setup-stub.exe	5068	CreateFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	Desired Access: Read Data/List Directory, Execute/Traverse, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
13:01:20.4185466	setup-stub.exe	5068	CreateFileMapping	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	FILE LOCKED WITH ONLY READERS	SyncType: SyncTypeCreateSection, PageProtection: PAGE_EXECUTE_READWRITE
13:01:20.4186510	setup-stub.exe	5068	CreateFileMapping	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	SyncType: SyncTypeOther
13:01:20.4188169	setup-stub.exe	5068	Load Image	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	Image Base: 0x74680000, Image Size: 0x48000

< same lines as above again and again and again... >

Copying the DLL to either location did the trick!

13:01:28.3417205	setup-stub.exe	5068	Load Image	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	Image Base: 0x74680000, Image Size: 0x48000
13:01:28.3418596	setup-stub.exe	5068	CloseFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\InetBgDL.dll	SUCCESS	
13:01:28.3420866	setup-stub.exe	5068	QueryOpen	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	CreationTime: 15-May-24 13:01:28, LastAccessTime: 15-May-24 13:01:28, LastWriteTime: 10-Jun-22 19:49:56, ChangeTime: 15-May-24 13:00:11, AllocationSize: 81,920, EndOfFile: 80,800, FileAttributes: A
13:01:28.3422469	setup-stub.exe	5068	CreateFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	Desired Access: Read Data/List Directory, Execute/Traverse, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
13:01:28.3423228	setup-stub.exe	5068	WriteFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	Offset: 0, Length: 81,920, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
13:01:28.3456757	setup-stub.exe	5068	SetEndOfFileInformationFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	EndOfFile: 80,800
13:01:28.3457371	setup-stub.exe	5068	CreateFileMapping	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	SyncType: SyncTypeOther
13:01:28.3458578	setup-stub.exe	5068	CreateFileMapping	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	FILE LOCKED WITH ONLY READERS	SyncType: SyncTypeCreateSection, PageProtection: PAGE_EXECUTE_READWRITE
13:01:28.3458810	setup-stub.exe	5068	QueryStandardInformationFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	AllocationSize: 81,920, EndOfFile: 80,800, NumberOfLinks: 1, DeletePending: False, Directory: False
13:01:28.3462799	setup-stub.exe	5068	CreateFileMapping	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	SyncType: SyncTypeOther
13:01:28.3464161	setup-stub.exe	5068	Load Image	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	Image Base: 0x74660000, Image Size: 0x15000
13:01:28.3466577	setup-stub.exe	5068	CloseFile	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\vcruntime140.dll	SUCCESS	
13:01:28.3470675	setup-stub.exe	5068	QueryOpen	C:\Users\WDAGUtilityAccount\AppData\Local\Temp\nsr4F06.tmp\WebBrowser.dll	SUCCESS	CreationTime: 15-May-24 13:00:57, LastAccessTime: 15-May-24 13:00:57, LastWriteTime: 15-May-24 13:00:57, ChangeTime: 15-May-24 13:00:57, AllocationSize: 106,496, EndOfFile: 105,920, FileAttributes: A

When I added the missing DLL next to the stub program, it got unstuck but eventually failed, sigh. Not sure why, but I doubt it's a great idea to force a program to load DLLs on the fly like I did anyway...

OTOH when I copied the missing DLL to C:\Windows\SysWOW64, the installer successfully downloaded and installed Firefox \o/

I'm going to try to get our build system to fix the linkage.

Flags: needinfo?(bhearsum)
Assignee: nobody → bhearsum

To start, I took a look at the linkage on the older version of this plugin. Its sole direct dependencies are:

  • wininet.dll
  • kernel32.dll
  • user32.dll

The one currently checked has these additional direct dependencies:

  • vcruntime140.dll
  • api-ms-win-crt-runtime-l1-1-0.dll -> C:\WINDOWS\SysWOW64\ucrtbase.dll

(This is according to this Dependencies walker.)

I'll see what I can do to coax our build system to link this way; worst case scenario we may need to fallback to building with visual studio on a laptop.

Severity: -- → S2
Priority: -- → P1

Oh, this is unfortunate. This isn't the same thing, but it's related to https://bugzilla.mozilla.org/show_bug.cgi?id=1691782.

I believe I managed to get a statically linked InetBgDl.dll out of our build system. I've pushed https://treeherder.mozilla.org/jobs?repo=try&revision=0d8c6bee15ce9bc54a7749717033fa24e15ca0bf to try, which those that can reproduce this can test with when it's ready.

This was built in a shippable win32 build on Try in https://treeherder.mozilla.org/jobs?repo=try&revision=0d8c6bee15ce9bc54a7749717033fa24e15ca0bf, which was based on 730319d762dc822e7319087f50a31ee268d4fb00, with updated versions of the patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1771192 applied to it that statically link InetBgDL.dll.

From there, I sent it through adhoc-signing in https://github.com/mozilla-releng/adhoc-signing/pull/208.

The output from that (https://firefox-ci-tc.services.mozilla.com/tasks/EHnFhv77SO6K8D_ZS32fGQ) is what is included in this revision.

Duplicate of this bug: 1895492
Blocks: 1889299
Pushed by jcristau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7dfa7b4661e1
update InetBgDL.dll nsis plugin with a statically linked version r=nalexander,jcristau
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 128 Branch

We're going to need to uplift this along with bug 1889299.

The patch landed in nightly and beta is affected.
:bhearsum, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox127 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(bhearsum)

We don't build/ship a stub installer on esr.

And the uplift to 127 will happen post release.

Flags: needinfo?(bhearsum)
Depends on: 1895492
No longer duplicate of this bug: 1895492
No longer regressed by: 1895492

Mathew, what's the reason for updating the bug dependencies? That doesn't look quite right to me.

Flags: needinfo?(mathew.hodson)

This was built in a shippable win32 build on Try in https://treeherder.mozilla.org/jobs?repo=try&revision=0d8c6bee15ce9bc54a7749717033fa24e15ca0bf, which was based on 730319d762dc822e7319087f50a31ee268d4fb00, with updated versions of the patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1771192 applied to it that statically link InetBgDL.dll.

From there, I sent it through adhoc-signing in https://github.com/mozilla-releng/adhoc-signing/pull/208.

The output from that (https://firefox-ci-tc.services.mozilla.com/tasks/EHnFhv77SO6K8D_ZS32fGQ) is what is included in this revision.

Original Revision: https://phabricator.services.mozilla.com/D210581

Attachment #9407837 - Flags: approval-mozilla-release?
Attachment #9407837 - Flags: approval-mozilla-release? → approval-mozilla-release+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: