Update hostutils for Android tests, to pick up bug 1492937 and bug 1513152 changes when both have landed

RESOLVED FIXED

Status

()

enhancement
P2
normal
RESOLVED FIXED
7 months ago
6 months ago

People

(Reporter: Waldo, Assigned: egao)

Tracking

(Depends on 3 bugs)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

The HTTP server and associated xpcshell binary used in various Android tests, that loads/runs .sjs scripts, will need to be updated to pick up the changes made in bug 1513152 and soon to be made in bug 1492937.

We can muddle along without these to some degree -- as long as .sjs files that contain semantically important UTF-8 do not run on Android.  But as bug 1513152 comment 8, bug 1513152 comment 9, and bug 1513152 comment 10 show, the resulting failure mode is very inscrutable.  And I would hate to see someone else waste hours trying to debug a failure related to UTF-8 in their .sjs that *only* appears on this one weird Android task (possibly with an initial landing backed out), if it can be avoided by just promptly updating the relevant part of the Android testing setup.

(This is a duplicate of bug 1457012, but bug 1492937 comment 7 specifically directed me to file this as a duplicate.  I guess because that bug's being held for a principled fix once and for all?  ¯\_(ツ)_/¯ )
Flags: needinfo?(egao)
:egao - Is this something you could help resolve in the near future? I can do the tooltool upload, if needed.
Please note that I need to coordinate updating the Bitbar containers to reflect the new hostutils.
Assignee: nobody → egao
Duplicate of this bug: 1457012
Was informed that I should wait until Bug 1492937 lands before commencing on this.
(In reply to Edwin Gao (:egao) from comment #5)
> Was informed that I should wait until Bug 1492937 lands before commencing on
> this.

It would probably better to apply that patch and update before it lands. I'm hoping we won't have any trouble landing before the hostutils update, but experience has taught me to worry.
(In reply to Kris Maglione [:kmag] from comment #6)
> (In reply to Edwin Gao (:egao) from comment #5)
> > Was informed that I should wait until Bug 1492937 lands before commencing on
> > this.
> 
> It would probably better to apply that patch and update before it lands. I'm
> hoping we won't have any trouble landing before the hostutils update, but
> experience has taught me to worry.

The remaining patch in 1492937 does not apply cleanly for me, on today's mozilla-central. We could proceed with host-utils based on try builds (linux and osx); I note https://treeherder.mozilla.org/#/jobs?repo=try&revision=6ce6c31b86ea09b61e68920bab99f6ac20ed20dd, but not sure if that is suitable.
Bug 1492937 just landed and is building away, so once that propagates to mozilla-central we should be good to generate a new hostutils.  I expect this should go without a hitch, but also it's been a week since I did a try-push of this, and it is *possible* new tests could have slipped in to break this -- although I did my best with find and ack and grep for offending characters to rule out this possibility.  We'll find out for sure in a couple hours.

Anyway, once that's stuck, just making sure a fresh xpcshell is used to run httpd.js should be enough to address the concern that motivated filing this bug, I think.
And, bug 1492937 is now in mozilla-central.  We should be good to do a regen whenever now.
As per bug 1499915, elfhack no longer appears to be required. Will be removing the packaging of elfhack for this instance of hostutils.



Selecting the following run from mozilla-central as basis:

https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&resultStatus=testfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel%2Crunning%2Cpending%2Crunnable&revision=49be2c1eb4c8c64cadd4297ff9eb5454f4bb4a93
:egao - I have uploaded your initial archives to tooltool:

$ python ../tooltool.py add --visibility public host-utils-66.0a1.en-US.linux-i686.tar.gz
$ python ../tooltool.py upload host-utils-66.0a1.en-US.linux-i686.tar.gz --authentication-file=../mypublicuploadtoken --message="Bug 1514075 - Update host-utils to 66.0a1 - linux 32 bit"

(repeated with 64 bit)

Here are the resulting manifests:

[
  {
    "size": 59026737,
    "visibility": "public",
    "digest": "55fe58575db8c94ee54bc1ac9c29369a15577e468dfcfa4670a7906d04ec41b778776761df6023d30d5dd706a39b0a14555e521a83206eb243add6e5f473cbb8",
    "algorithm": "sha512",
    "filename": "host-utils-66.0a1.en-US.linux-i686.tar.gz"
  }
]


[
  {
    "size": 59180383,
    "visibility": "public",
    "digest": "b4d48b92626d2d3534a4e3c4df77dbf0cf5826a62d92ce94a926175bfe97dc90a33395f318347c6fdce92b4d93fb60b18de16af7faae1538c1af22d303ca0940",
    "algorithm": "sha512",
    "filename": "host-utils-66.0a1.en-US.linux-x86_64.tar.gz"
  }
]


As a next step, you can create a patch to update https://searchfox.org/mozilla-central/source/testing/config/tooltool-manifests/linux32/hostutils.manifest and https://searchfox.org/mozilla-central/source/testing/config/tooltool-manifests/linux64/hostutils.manifest (update size, digest, filename with values from above). Then push that patch to try; run all the android-em-* tests for good measure.
Flags: needinfo?(egao)
I will do an updated bitbar image with this and also run a test on android-hw.
Is host-utils-66.0a1 missing certutil?
Flags: needinfo?(gbrown)
Yes, you are right! It is missing certutil and all of the binaries normally taken from the bin directory of the common.tests archive: certutil, xpcshell, ssltunnel, etc. That won't work.
Flags: needinfo?(gbrown)
New archives uploaded. Here are the resulting manifests:

[
  {
    "size": 78918119,
    "visibility": "public",
    "digest": "e1c9f389bb0641d0bd1727c033efa934f35a8e656a471ca884ee4c73231b0b5bc33786c65c0433881ae9bca8db5d026541c84c50cce5b1851ca6
3c7840a9e064",
    "algorithm": "sha512",
    "filename": "host-utils-66.0a1.en-US.linux-i686.tar.gz"
  }
]


[
  {
    "size": 78439071,
    "visibility": "public",
    "digest": "dc49f496da515d61c015ba64b0ad8838e73d4b3814edba59720a810e7077cf1be86f16102a0bf0db2eee6171702e7b9bb7ba6adc3f579176b5e9
18eac7f06a8e",
    "algorithm": "sha512",
    "filename": "host-utils-66.0a1.en-US.linux-x86_64.tar.gz"
  }
]
Try run with `android-em` tests selected:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=d70934c04b54ae434c26120e3a45e78f5e2488c6

A few TEST-UNEXPECTED-PASS, some TEST-UNEXPECTED-FAILs.
Flags: needinfo?(egao)
Try looks okay to me.

:bc - I don't think we need to update android-hw at exactly the same time, but are you okay with proceeding?
Flags: needinfo?(bob)
Leave-open for osx (which doesn't need to be done at the same time).
Keywords: leave-open
Go for it. I've updated the DOCKER_IMAGE_VERSION to match the lastest version with the host-utils from comment 15.
Flags: needinfo?(bob)
Pushed by gbrown@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/792bc67640ca
update Android hostutils with Firefox 66.0a1 r=gbrown
Depends on: 1516441
The host-utils update caused at least 2 perma-fails on android-hw mochitest-media tests. When I reviewed our try push here, I didn't think the android-hw failures could be related -- I hadn't read comment 20 yet!
Depends on: 1392946
Priority: -- → P2
(In reply to Geoff Brown [:gbrown] from comment #19)
> Leave-open for osx (which doesn't need to be done at the same time).

:egao -- The Linux host-utils update looks good! Now the osx host-utils should be updated, based on the same revision. The osx host-utils do not affect continuous integration, but support developers running android tests on osx laptops. I can do the tooltool upload if you can generate the new archive and get that to me.
Flags: needinfo?(egao)
(In reply to Geoff Brown [:gbrown] from comment #24)
> (In reply to Geoff Brown [:gbrown] from comment #19)
> > Leave-open for osx (which doesn't need to be done at the same time).
> 
> :egao -- The Linux host-utils update looks good! Now the osx host-utils
> should be updated, based on the same revision. The osx host-utils do not
> affect continuous integration, but support developers running android tests
> on osx laptops. I can do the tooltool upload if you can generate the new
> archive and get that to me.

:gbrown -- Sure, I will look into it.
Flags: needinfo?(egao)
Duplicate of this bug: 1433279
See Also: → 1294256

:egao - Your osx archive looks good to me. It is uploaded now. Here's the new manifest:

[
{
"size": 170503637,
"visibility": "public",
"digest": "100621357451ab99dd672bcca32d61e379de2444f3bc5820f81f887b31ee01c008b44c2542bd1152c431188e4c0facbd641dbdcb160a2082bfc22fa65d3869b7",
"algorithm": "sha512",
"filename": "host-utils-66.0a1.en-US.mac.tar.gz"
}
]

This host-utils will not be used in CI automation, but will be used on developers' osx hosts. To verify, you'll need to update the osx manifest in testing/config/tooltool-manifests and then run an android test from mach, on an osx host (I like 'mach robocop testAboutPage' as a sanity test): mach will offer to update the local host-utils; after the update, if tests still run for you, all's well and we can check-in your manifest update.

Flags: needinfo?(egao)

Steps (for future references):

  1. update mozilla-central/testing/config/tooltool-manifests/macosx64/hostutils.manifest
  2. ./mach clobber
  3. ./mach build
  4. ./mach package
  5. ./mach install
  6. ./mach robocop testAboutPage

This manifest worked in my local environment. macOS 10.13.6, Google Pixel 2 (rooted).

Flags: needinfo?(egao)
Pushed by gbrown@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9a11f71473dc
added updated hostutils for macOS r=gbrown
Status: NEW → RESOLVED
Closed: 7 months ago
Keywords: leave-open
Resolution: --- → FIXED
Depends on: 1523425
You need to log in before you can comment on or make changes to this bug.