Closed Bug 1937434 Opened 2 months ago Closed 9 days ago

[c-c msOS] perma test failures in toolkit/mozapps/update/tests/ for Mac (toolkit/mozapps/update/tests/unit_aus_update/multiSessionInstallLockout.js, marAppApplyUpdateSuccess.js, marAppApplyUpdateStageSuccess.js)

Categories

(Thunderbird :: Upstream Synchronization, defect)

defect

Tracking

(Not tracked)

RESOLVED FIXED
136 Branch

People

(Reporter: darktrojan, Assigned: darktrojan)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

We've got some new failures on Mac:

  • toolkit/mozapps/update/tests/unit_aus_update/multiSessionInstallLockout.js
  • toolkit/mozapps/update/tests/unit_base_updater/marAppApplyUpdateSuccess.js
  • toolkit/mozapps/update/tests/unit_base_updater/marAppApplyUpdateStageSuccess.js

Here's an example failure log.

They'll be from bug 1907120, bug 1907126, or bug 1907127. I tried adding the preferences in this revision which changed the behaviour (the OS gave me a warning about launching an application) but that didn't really help and I gave up.

Summary: Test failures in toolkit/mozapps/update/tests/ for Mac → Test failures in toolkit/mozapps/update/tests/ for Mac (toolkit/mozapps/update/tests/unit_aus_update/multiSessionInstallLockout.js, marAppApplyUpdateSuccess.js, marAppApplyUpdateStageSuccess.js)

Robin, do you have any idea why these failures might be happening when the tests are run in Thunderbird?

Flags: needinfo?(bytesized)

Interestingly, I had problems with these same three tests, I believe only on macOS, when developing these patches. But the thing is that I backtracked on the issue that caused this in Firefox and took a different approach. But it seems like some related problem still exists on Thunderbird for some reason.

These three tests are a bit unusual. multiSessionInstallLockout.js is the only one test that runs runUpdateUsingApp more than once. And the other two are the only tests that use the removeOriginalFile feature and they use it to remove bits of the the updater binary. This has a slightly complicated interaction with the function that copies the updater in to place, copyTestUpdaterToBinDir.

Originally, I ended up with problems where, on macOS, I'd end up with a partial updater app on the second call to runUpdateUsingApp in multiSessionInstallLockout.js. Since the updater app directory existed, this line prevented the app from being rewritten. I never did figure out why the directory already existed in that case; seems like it shouldn't have. But when I tried to remove that line from copyTestUpdaterToBinDir and unconditionally overwrite the updater app, that caused the marAppApplyUpdate(Stage)?Success.js tests to fail because they reran that function after calling removeOriginalFile and suddenly the removed file was back. Because so many other tests call into the functions that those two call into, fixing them to not call that again seemed like a problem. So I reverted copyTestUpdaterToBinDir and added this line instead, which prevented that part of the initialization from being skipped (here) when multiSessionInstallLockout.js repeats.

I'm pretty confused about what's going on in this case. The linked test log shows that we are waiting for the application process launched with runUpdateUsingApp to run this, which it generally runs before it exits for the final time. I can't really figure out what, if any, connection there is between the previous problems and this one. Given that other tests use runUpdateUsingApp besides these 3, it seems unlikely to be a problem with that code specifically. It seems more likely that you are having some kind of a problem with bit of the updater app being missing and consequently the thing not running at all, like the problem I had the first time. But I can't figure out why just by reading the logs.

Flags: needinfo?(bytesized)
Summary: Test failures in toolkit/mozapps/update/tests/ for Mac (toolkit/mozapps/update/tests/unit_aus_update/multiSessionInstallLockout.js, marAppApplyUpdateSuccess.js, marAppApplyUpdateStageSuccess.js) → [c-c msOS] perma test failures in toolkit/mozapps/update/tests/ for Mac (toolkit/mozapps/update/tests/unit_aus_update/multiSessionInstallLockout.js, marAppApplyUpdateSuccess.js, marAppApplyUpdateStageSuccess.js)
See Also: → 1935200

going to disable this test on macosx1100 for perma timeout in bug 1942377

toolkit/mozapps/update/tests/unit_update_binary/marAppApplyUpdateStageSuccess.js and toolkit/mozapps/update/tests/unit_aus_update/multiSessionInstallLockout.js are still permafailing.

I have figured out what's wrong. The update .app we're trying to run has "firefox" wired in as the name of the executable, but the actual executable is "thunderbird". Checking with a try run then I'll push a patch.

Assignee: nobody → geoff
Status: NEW → ASSIGNED
Pushed by geoff@darktrojan.net: https://hg.mozilla.org/integration/autoland/rev/a4da4b44a870 Don't hard-wire the executable name in app update test packages. r=bytesized,application-update-reviewers
Status: ASSIGNED → RESOLVED
Closed: 9 days ago
Resolution: --- → FIXED
Target Milestone: --- → 136 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: