Closed Bug 1720993 Opened 3 years ago Closed 3 years ago

Background update disables launcher process

Categories

(Toolkit :: Application Update, defect)

Unspecified
Windows 10
defect

Tracking

()

RESOLVED FIXED
92 Branch
Tracking Status
firefox91 --- fixed
firefox92 --- fixed

People

(Reporter: bugsgalore, Assigned: bytesized)

References

(Blocks 1 open bug)

Details

(Keywords: nightly-community)

Attachments

(1 file)

After enabling the background update feature and running the task from task scheduler, Firefox reports in about:support that "Launcher Process Disabled due to failure".

If I enable the launcher process by flipping the pref off and on again, it gets enabled like it should, but gets disabled again after running the background update task.

Blocks: update-agent

Thanks for the report! We'll definitely investigate. This is almost certainly connected to https://bugzilla.mozilla.org/show_bug.cgi?id=1689481. I wonder if we're truly disabling the launcher process, or if the state is simply reported incorrectly.

bytesized: NI to you to dig into this next week.

Flags: needinfo?(ksteuber)

I'm looking into it. Unfortunately, I can reproduce this outside of a debugger, but not (yet) in one. So this might take some time to figure out.

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

Ah, I think I have pinned down the problem. The problem is essentially that ERROR_ACCESS_DENIED is being returned here. Apparently we do not have whatever permissions are required to query information about the process that launches scheduled tasks.

I've talked to some coworkers that say that they do not seem to be experiencing this problem. I'm not really sure why. Maybe it has something to do with the Task Scheduler internals? Hard to say. We do properly handle things if the parent process has already exited, so maybe that's what's going on?

As to fixing this, it seems me that we should assume that we will have the necessary permissions to query launcher process. So if we get an Access Denied error, we should probably assume that the parent process is not the same binary and so IsSameBinaryAsParentProcess should return false.

But we also want to address the issue of users that have had the launcher process improperly turned off because of this. We could just turn it back on again, but that is not ideal for situations where it is turned off for a good reason. AFAICT we can't tell why we turned it off, but I believe that we could check the timestamp on the registry entry that disabled it. I think that if that timestamp is dated after the Background Update rollout started, we should just go ahead and turn the launcher process back on.

I'll try to have a patch up for this as soon as possible.

(In reply to Kirk Steuber (he/him) [:bytesized] from comment #3)

But we also want to address the issue of users that have had the launcher process improperly turned off because of this.

Oh, apparently this part is unnecessary because of this. I've been told that we intentionally turn this back on after every update in the hope that the update fixes the problem that caused the launcher process failure. I didn't know about that. That makes this patch much simpler.

This patch doesn't cover turning the launcher process back on, because that already happens automatically during the PostUpdate process.

See Also: → 1587980
Pushed by ksteuber@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f05832afe8f1
Assume that a parent process that we don't have access to is not the same binary r=aklotz,tkikuchi
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 92 Branch

Comment on attachment 9232441 [details]
Bug 1720993 - Assume that a parent process that we don't have access to is not the same binary r=aklotz

Beta/Release Uplift Approval Request

  • User impact if declined: A large number of Windows users have had their launcher process disabled due to this bug. Until it is patched, the launcher process will most likely continue to be unusable for them. This patch should address the issue and also prevent it from impacting more users.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This is a very small patch that just changes the error handling for one error code that a system call potentially returns.
  • String changes made/needed:
Attachment #9232441 - Flags: approval-mozilla-beta?

(In reply to Kirk Steuber (he/him) [:bytesized] from comment #8)

Kirk, this bug has no priority/severity set, it's not marked as a regression and there was no tracking flag requesting tracking for the 91 release. It's not clear to me how important it is to have it in 91 and what the actual end user impact of having the launcher process deactivated is. Does it mean that Firefox is no longer usable? Do you have an idea of how many people are impacted?

Even though the patch is small, it touches code at startup time, it has no automated test, there is no request for manual validation from our QA team and it just landed on nightly. For these reasons I am inclined not to take it in our final beta build before RC on Monday so as to not risk unknown regressions it may cause, but I will wait on your additional feedback on the issue as I don't fully understand the impact of not taking it before taking a decision (in this bug or slack/matrix if you prefer). Thanks!

Flags: needinfo?(ksteuber)

(In reply to Pascal Chevrel:pascalc from comment #9)

It's not clear to me how important it is to have it in 91 and what the actual end user impact of having the launcher process deactivated is. Does it mean that Firefox is no longer usable?

No, it does not mean Firefox is not usable. The launcher process' main purpose, as I understand it, is to attempt to prevent unwanted DLL injections. We get a lot of programs (especially antivirus programs) attempting to inject code into Firefox. This injected code is sometimes buggy, or relies on Firefox internals that are not necessarily stable, causing crashes. People typically are not aware that their antivirus is doing this, so they blame the crashes on us.

Do you have an idea of how many people are impacted?

It seems like quite a few people have been impacted. This feature has not been completely deployed on Release yet, but here are some results showing launcher process failures on Beta. For comparison, this shows the deployment of the Background Update feature to Beta. Note that it is difficult to compare numbers exactly here because AFAICT multiple launcher process failures can be sent per user and the deployment graph only represents 1% of the population. But the timelines do seem to match closely and the number of launcher process failures seems quite high.

Flags: needinfo?(ksteuber)
Attachment #9232441 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: